Method and apparatus for scanning three-dimensional objects

ABSTRACT

Apparatus and method for creating 3D imagery of an object using calibration means to transfer data to a reference frame and visibility analysis to determine and resolve occlusion.

REFERENCE TO RELATED APPLICATIONS

[0001] This application is a continuation of pending U.S. applicationSer. No. __/______ filed on Aug. 10, 2002 and is a continuation-in-partof pending U.S. application Ser. No. 09/945,133 filed on Aug. 31, 2001which is a continuation of U.S. application Ser. No. 09/236,727 filed onJan. 25, 2999 now U.S. Pat. No. 6,288,385 issued on Sep. 11, 2001 whichis a continuation of U.S. application Ser. No. 08/738,437 filed on Oct.25, 1996, now U.S. Pat. No. 5,864,640 issued on Jan. 26, 1999 all ofwhich are incorporated herein by reference..

[0002] Appendix A entitled SIGGRAPH 2001 Course: Acquisition andVisualization of Surface Light Fields is attached hereto and made a parthereof by reference.

TECHNICAL FIELD

[0003] This invention relates generally to optical scanners, and moreparticularly to optical scanners for providing a digital representationof three dimensional objects.

BACKGROUND ART

[0004] Methods for successfully obtaining two dimensional (“2-D”) colorimage data for objects have been developed. This process is commonlyknown as two dimensional scanning or digitizing. When an object isscanned, a digital data file is created which contains image dataincluding color information which is associated with a set of twodimensional points or coordinates. The color information is obtained byan optical detector or set of optical detectors that are typicallyorganized in a one or two dimensional array.

[0005] Matching the color information with the correct two dimensionalpoint or location is not a significant problem in two dimensionalscanning since the two dimensional point on which the optical detectoris focused is the same point that is associated with the colorinformation obtained by the detector. The color information ismislocated only to the extent that there is some error in the locationof the point on which the detector is focused (e.g. an error introducedby the optical system) and that error can readily be minimized.

[0006] The problem of associating color information with threedimensional (“3-D”) objects is not so easily solved. This is becauseprior art methods obtain color information with a two dimensionalscanning method, while position information is obtained by a threedimensional scanning method. The mapping of the 2-D color information tothe 3-D position information is a complicated process which is prone tosignificant error.

[0007] Many methods exist for obtaining the three dimensional locationof the surface points of the object. One such method is a system, whichuses a laser range finder to scan the object and record the distancebetween the known three dimensional location of the range finder and themeasured location of the surface of the object. The result of using thismethod or other methods of generating three-dimensional surface modelsis a set of three dimensional points which accurately represent thesurface of the object. A characteristic of this method and other methodsof obtaining a three dimensional surface model is that it is inherentlymonochromatic, that is, no color information is obtained in the process.If three dimensional color information is desired, then it must begenerated by somehow combining or conformally mapping the twodimensional color information onto the three dimensional surface model.

[0008] The problem of conformally mapping the two-dimensional colorinformation onto the three dimensional surface model is difficult and itis common for mismatching of color information with the threedimensional points to occur. The problem may be visualized by imagininga white statue or bust of a person's head and a color photograph of thesame person's face. The photograph cannot simply be projected onto thebust to transfer the correct color information to the correct points onthe bust or significant distortion will occur. A significant amount ofjudgment must be exercised in order to correctly associate the colorinformation from the photograph with the correct surface points on thebust. Similarly, it is difficult to accurately associate colorinformation obtained from two dimensional optical detectors with thecorrect points on a three dimensional surface model. Another problem inthe prior art is that color information is not used to determine surfacelocations, which means less than the total amount of information that isavailable is being used. Furthermore, both a 2-D and 3-D system isrequired, which adds cost.

[0009] What is needed is a way of generating a set of three dimensionalpoints representing a surface in such way that the three dimensionalpoints are already associated with color data so that conformallymapping separately generated color data onto the set of threedimensional surface points is not necessary. Furthermore, it isdesirable to utilize all available frequencies of light to determinesurface point positions to maximize the accuracy of the scanning processand to eliminate a separate 3-D scanning step.

DISCLOSURE OF THE INVENTION

[0010] Accordingly, the present invention provides a system and methodfor using the color information from a series of two dimensional colorimages to derive the three dimensional location in space of the surfacepoints which produced the color images. Because the color informationitself is used to derive the three-dimensional location of the surfacepoints, there is no need to conformally map separately generated colorinformation onto the derived three-dimensional surface points. Thepoints are derived from color information and so are already associatedwith the correct color information. Also, the use of the colorinformation increases the accuracy of the three dimensional location ofthe surface points.

[0011] In one embodiment, the present invention provides a threedimensional digital scanner which includes a multiple view detectorwhich is responsive to a broad spectrum of visible light. The multipleview detector is operative to develop a plurality of images of a threedimensional object which is being scanned. The plurality of images aretaken from a plurality of relative angles with respect to the object,and the plurality of images depict a plurality of surface portions ofthe object. A digital processor including a computational unit iscoupled to the detector and is responsive to the plurality of images sothat it develops 3-D coordinate positions and related image informationfor the plurality of surface portions of the object. A three dimensionalimage of the object to be scanned is thus developed by the digitalprocessor. The data developed includes both shape and surface imagecolor information.

[0012] In another embodiment, a three dimensional color digital scannerincludes a color detector responsive to a broad spectrum of visiblelight to develop a plurality of images of a three dimensional object. Arotary object support having an axis of rotation allows the detector todevelop a plurality of images of a three dimensional object. Theplurality of images depict a plurality of surface portions of theobject. A digital computer is coupled to the detector. The computertracks patches of the surface portions of the object to determinecoordinates of the patches as a function of the rotation of the rotaryobject support and determines radii of the patches from the axis ofrotation.

[0013] In another embodiment, a method for scanning a three dimensionalobject includes developing a plurality of images of a three dimensionalobject taken from a plurality of relative angles with respect to theobject. The plurality of images depict a plurality of surface portionsof the object to be scanned. 3-D coordinate positions and related imageinformation about the plurality of surface portions of the object iscomputed from the plurality of images such that a three dimensionalimage of the object is developed that includes both shape and surfaceimage information.

[0014] In another embodiment, a method for determining three dimensionalcoordinates of a surface portion of an object includes obtaining aplurality of images of the surface portion of the object and identifyinga trackable patch of the surface portion in an initial image. An initialset of two dimensional coordinates of the trackable patch in the initialimage is determined along with at least one additional set of twodimensional coordinates of the trackable patch in another of the images.A radial coordinate of the trackable patch is determined and then a setof three dimensional coordinates of the trackable patch are determinedfrom the radial coordinate of the trackable patch.

[0015] In another embodiment, a method for determining three dimensionalcoordinates of a surface portion of an object includes rotating theobject about an axis of rotation so that a plurality of images of thesurface portion of the object are obtained as the object is rotatesabout the axis of rotation. A trackable patch is identified and the twodimensional coordinates of the trackable patch are determined. Themovement of the trackable patch is tracked as a function of the rotationof the object. A radial distance of the trackable patch from the axis ofrotation is determined based on the movement of the trackable patch as afunction of the rotation of the object and three dimensional coordinatesof the surface portion of the object are derived from the coordinates ofthe trackable patch and the radial distance of the trackable patch fromthe axis of rotation.

[0016] The present inventions provides a system and method for obtaining3-D surface information that is linked to color information without theneed to conformally map 2-D color data onto a 3-D surface. The accuracyof the system is enhanced by the use of color data and the cost of thesystem is reduced because the 3-D surface is derived from a series of2-D images. These and other advantages of the present invention willbecome apparent upon reading the following detailed descriptions andstudying the various figures of the drawings.

BRIEF DESCRIPTION OF THE DRAWINGS

[0017]FIG. 1 illustrates a system for obtaining a series of twodimensional color images of an object and processing those images toobtain a three dimensional model of the surface of the object.

[0018]FIG. 1A illustrates an alternative embodiment of the presentinvention which enables the top and bottom portions of an object to bescanned.

[0019]FIG. 1B illustrates another embodiment of the present inventionwhich produces enhanced shading of an object.

[0020]FIG. 1C illustrates an arrangement where a detector is translatedabout a stationary object.

[0021]FIG. 1D illustrates an embodiment of the present invention whichuses a multiple number of detectors instead of moving a single detector.

[0022]FIG. 2 illustrates in detail architecture of an image acquisitionsystem.

[0023]FIG. 3A is a flow diagram illustrating a process of obtainingmultiple images of a rotating object.

[0024]FIG. 3B is a flow diagram illustrating a process for generatingthree dimensional surface data from the two dimensional images of theobject.

[0025]FIG. 4 is a flow diagram illustrating a process performed on theimages before they are stored.

[0026]FIG. 5A illustrates the vector nature of the color data obtained.

[0027]FIG. 5B illustrates an example of blue color data at times 0, 1,2, and 3 for a line of pixels.

[0028]FIG. 5C illustrates how the data can be compressed by recordingonly the changes in the color data.

[0029]FIG. 6 is a flow diagram illustrating a process for identifyingthe silhouette of the object in each image.

[0030]FIG. 7 is a flow diagram illustrating a process for findingsilhouette edges along each scan line.

[0031]FIG. 8 is a flow diagram illustrating a process for determining aset of trackable patches.

[0032]FIG. 8A illustrates how to search an image for trackable patches.

[0033]FIG. 9 is a flow diagram illustrating a process for determiningthe radius of the location of patches on the surface of the object asthe object is rotated.

[0034]FIG. 9A illustrates a set of patch tracking limits.

[0035]FIG. 9B illustrates the motion of trackable patches in differentimages with different angular displacements.

[0036]FIG. 9C illustrates the determination of an exact position of thepatch in an image.

[0037]FIG. 9D is a graph which illustrates the filtering of raw datapoints.

[0038]FIG. 9E is a graph which illustrates how the radius is determinedfrom the points representing the path of the trackable patch acrossangularly displaced images.

[0039]FIG. 10 is a flow diagram illustrating the post processing thatoccurs once the radius of the trackable patch is known.

[0040]FIG. 11 is a pinhole camera model.

[0041]FIG. 12 illustrates image projection.

[0042]FIG. 13 illustrates calibration objects in a calibration ring withan object.

[0043]FIG. 14 illustrates calibration objects in a calibration ring.

[0044]FIG. 15 illustrates triangulation of a point from two camerapositions.

[0045]FIG. 16 illustrates projected light bands used for profilometry.

[0046]FIG. 17 illustrates the Z-buffer visibility calculation.

[0047]FIG. 18 illustrates the use of 3D calibration objects, inparticular cones used to locate a concentrated light source by shadowtriangulation.

[0048]FIG. 19 illustrates the projection of image data onto surfaceelements to create surface color maps.

BEST MODES FOR CARRYING OUT THE INVENTION

[0049] In FIG. 1, an embodiment of the present invention includes asystem for obtaining a series of two dimensional color images of anobject and processing those images to obtain a three dimensional modelof the surface of the object. An object 100 which is to be digitized isplaced on a rotatable platform 102. A motor 104 is provided to driverotatable platform 102 via a shaft 106. A position encoder 108 detectsthe angular position of rotatable platform 102 and generates anelectrical signal which represents the angular position of rotatableplatform 102. An optical detector 110 (e.g. a color video camera) viewsobject 100 and creates a two dimensional color image of object 100.

[0050] As object 100 is rotated by rotatable platform 102, detector 110captures a series of color images of object 100. Each color image takenat a different time is associated with an angular rotation of object 100about an axis of rotation, “A” which runs through shaft 106. Informationabout the angular position of object 100 is obtained from positionencoder 108. Thus, each “snapshot” or image of object 100 taken bydetector 110 from a different view is associated with data about theangle of rotation of object 100 with respect to detector 110. An imageinput processing system 120 (“computer”) controls the image acquisitionprocess and records the acquired images along with the associatedangular position data. That is, processing system 120 is connected todetector 110 and receives data for each image or snapshot taken ofobject 100 from detector 110, and position encoder 108 sends angularposition information to processing system 120, so that processing system120 can associate the image data from detector 110 with the angularposition data taken at the same time. In other embodiments, detector 110is a film camera and processing system 120 receives data from adigitizer which digitizes the film images from detector 110.

[0051] Processing system 120 includes a processing unit 122 and amonitor 124 and also controls motor 104. A monitor 124 can display acurrent image 126 being captured by detector 110 or other informationabout the capturing process.

[0052] Once processing system 120 has obtained a series of images, thoseimages are transferred to an image processor 130 (“computer”). Imageprocessor 130 can receive data from processing system 120 in a number ofdifferent ways. Image processor 130 can be directly connected toprocessing system 120 via direct connection 132, or data from processingsystem 120 can be transferred to a removable storage medium such as disk134 which may be read by image processor 130. Processing system 120 mayalso transfer data to image processor 130 via the Internet or a modemconnection. Image processor 130 includes processing unit 136 and alsoincludes monitor 138.

[0053] In other embodiments, processing system 120 and image processor130 are combined on a single computer. The advantage of separating thefunctions of processing system 120 and image processor 130 is that thedata acquisition and storage function performed by processing system 120and control of the data acquisition system does not require a complex orpowerful processor. On the other hand, image processor 130 receives datarepresenting a series of two dimensional images and perform complex andcomputationally intensive operations on that data to produce a threedimensional surface model. Image processor 130 is therefore, givencurrent technology, likely to be a more powerful (and costly) computerthan processing system 120. If that is the case, then it is economicallybeneficial to utilize a large number of relatively cheap processors fordata acquisition and temporary storage and send data from thoserelatively cheap systems to a smaller number of image processors whichgenerate the three dimensional surface model from the set of twodimensional color images.

[0054]FIG. 1A illustrates an alternative embodiment of the presentinvention which enables the top and bottom portions of an object to bescanned. Again, object 100 is supported by rotatable platform 102 whichis driven by motor 104. In this embodiment, shaft 107 engages the edgeof rotatable platform 102, so that motor 104 and shaft 107 do notobscure the image of the bottom of object 100. Rotatable platform 102 ismade from a transparent material so that the bottom of object 100 may beviewed through rotatable platform 102. A set of mirrors 109 are placedwithin the field of view of detector 110 so that images of the top andbottom surfaces of object 100 are captured by detector 110 in additionto the side views.

[0055]FIG. 1B illustrates another embodiment of the present inventionwhich is designed to produce contrast enhancing shading of object 100.Again, object 100 is supported by rotatable platform 102 which is drivenby a motor 104 via a shaft 106. A second motor 142 also drives arotatable platform 144 via shaft 146. Encoder 148 generates datarepresentative of the rotational position of rotatable platform 144 andtransmits that data to processing system 120. Likewise, motor 142receives control commands from processing system 120. A light 150 ismounted on rotatable platform 144 to provide illumination of object 100.Light 150 is oriented to provide contrasting illuminated and shadedportions on object 100 which aid in the tracking of features on thesurface of object 100. Because light 150 is mounted on rotatableplatform 144 which is separately controllable by processing system 120,different orientations of light 150 with respect to object 100 may bechecked to determine which one best enhances the surface features ofobject 100. When platforms 102 and 144 are rotated in a synchronizedmanner, the shading remains constant. Additionally, multiple sets ofviews of object 100 with different shadings can also be obtained bychanging the relative position of platforms 102 and 144.

[0056]FIGS. 1, 1A, and 1B each depict embodiments where in the objectbeing imaged is rotated. In another embodiment of the present invention,the object remains stationary and the detector moves around the object.FIG. 1C illustrates an arrangement where a detector is translated abouta stationary object. It should be noted that as the detector 110 ismoved, the optics 111 remain pointed at the object 100. Detector 110 canbe move in many ways and object 100 can be supported in many ways. Inone embodiment, an unobstructed view of object 100 is obtained bysuspending it from very thin wires. Detector 110 is translated aboutobject 100. If object 100 is very large, detector 110 could be mountedon, for example, a helicopter and flown around object 100. It is notnecessary that the motion of detector 110 be exactly circular aroundobject 100. The angular and radial components of the motion of detector110 with respect to object 100 can be computationally analyzed, as willbe appreciated by those skilled in the art. As long as the position ofdetector 110 is measured and recorded, the relative angular position ofdetector 110 with respect to object 100 can be determined for each imagetaken by detector 110. Methods of determining the position of detector110 include using GPS or a laser positioning system. Once the angularcomponent of the motion is analyzed and the radial component iscalculated, the system compensates for the radial component and theimages generated by detector 110 can be processed similarly to theimages generated by a system that includes a rotating object and astationary detector.

[0057]FIG. 1D illustrates an embodiment of the present invention whichuses a multiple number of detectors instead of moving a single detector.A top view of object 100 is shown and set of detectors 110 are providedat different angular displacements with respect to object 100. Theadvantage of this embodiment is that no motion is required and the needfor motors, encoders, and rotatable supports is limited. The image ofobject 100 captured by each detector is angularly displaced with respectthe images captured by the other detectors and so the images may beprocessed in a similar manner as successive images taken by one movingdetector.

[0058] The cost of multiple detectors 110 may be less than the cost of arotatable drive or a mechanism for moving detector 110 and recording theposition of detector 110. Another advantage of this approach is that allof the images of object 100 can be created simultaneously.

[0059]FIGS. 1 through 1D depict various embodiments for creatingmultiple images of object 100 with object 100 and detector 110 atdifferent relative angular displacements. Each of these systems providetwo dimensional color images of object 100 observed at different angles.This two dimensional information is converted into a three dimensionalsurface model of object 100 by the process and apparatus of the presentinvention.

[0060]FIG. 2 illustrates in detail the architecture of processing system120 used in some embodiments. A microprocessor 200 is connected to amemory bus 202 and memory bus 202 is connected to a RAM 204 and a ROM206. Microprocessor 200 is also connected to an input/output (“I/O”) bus208. A video interface 210 is coupled to I/O bus 208 to control monitor124, as is detector interface 212. Detector interface 212 buffers andprocesses data from the detector and also carries output commands to thedetector from microprocessor 200. In certain embodiments where a movingdetector is used, the detector provides its own control and records itsown position. In such embodiments, the detector/processor interface needonly be capable of transferring data from the detector, including bothimage and detector position data, to the processor storage system.

[0061] Mass storage 214 (such as a hard disk drive) is also connected toinput/output bus 208 and provides storage capacity for the multipleimages generated by the optical system. Removable storage 216 (such as afloppy disk drive) also provides a way of transferring data files to andfrom processing system 120 and another processing system. Alternatively,communications interface 218 can be used to transfer files as well.Communications interface 218 may be connected to a local area network(“LAN”) or wide area network (“WAN”) for communication with otherworkstations. Position controller 220 is connected to input/output bus208 and provides control to a motor in embodiments where processingsystem 120 provides control commands for rotating object 100. In suchembodiments, position detector 222 receives data from an encoder so thatprocessing system 120 may keep track of the position of object 100.Lighting control 224 is also connected to input/output bus 208 and isused to control the position of lights which may be moved with respectto object 100. Lighting control 224 also controls the intensity of thoselights.

[0062] The architecture shown for processing system 120 in FIG. 2 iscapable of supporting any of the embodiments shown in FIGS. 1-1D. If theobject is to be rotated, position controller 220 and position detector222 provide control of the rotation. Position information about object100 can be integrated with image data from interface 212 and stored inmass storage 214. Movement and intensity control of the light iscontrolled by lighting control 224. If an autonomous detector is used,data about the detector position and images captured by the detector canbe transferred to processing system 120 via communications interface 218or removable storage 216. Multiple detector interfaces are provided tocontrol a multiple number of detectors in embodiments which use morethan one detector. As described above, a three dimensional surface modelcan be computed using microprocessor 200 and the data contained in massstorage 214, or, alternatively, the data in mass storage 214 can betransferred to a more powerful image processing system.

[0063]FIG. 3A is a flow diagram for the process of the present inventionof obtaining multiple images of a rotating object. Preferably, themethod is implemented on a processing system 120. The process starts atstep 300, and the user places the object on the rotatable platform instep 302. The object begins to rotate while it is being imaged by adetector. In step 304, the processor checks whether the required ofnumber images have already been captured or taken. If the requirednumber of images have been captured, then the process is finished atstep 306. The two dimensional image data is then ready to be taken to animage processor for generation of a three dimensional surface model. Ifmore images are to be captured, then control is transferred to step 308,and a command is sent to the detector to capture an image. The image ispreferably preprocessed and stored in step 310, and control istransferred back to step 304. Once the process depicted in FIG. 3A iscomplete, a set of two dimensional color images of the object has beenobtained at different relative angular displacements between thedetector and the object.

[0064]FIG. 3B illustrates the process implemented on image processor 130for generating three dimensional surface data from the two dimensionalimages of the object developed by the process illustrated in FIG. 3Awhich was implemented on processing system 120. The process begins atstep 350 and in a step 352, the processor identifies the silhouette ofthe object in each of the two dimensional color images of the objectprovided by the image acquisition system. This silhouette informationwill be used to reduce the area in each image that must be processed. Instep 354, a set of tracking points is determined within the silhouettesof the object. These tracking points are associated with surfacefeatures of the object which are identifiable in different images of theobject taken by the optical detector. The portion of the image of theobject which corresponds to the identifiable feature is referred to as atrackable patch. Each trackable patch consists of a group of pixelssurrounding a geometric point on the surface which is being scanned. Thetrackable patch is thus a feature associated with and proximal to thegeometric point. The patch is distinguishable from adjacent surfacelocations and therefore trackable. The trackable patch is trackedthrough a series of images of the object taken at different relativeangular displacements between the object and the detector. Step 356develops a radius from the axis of rotation for each trackable patchwhich will account for the motion of the trackable patch in the images.The radius of the trackable patch is used to approximate the radius tothe geometric point associated with the trackable patch.

[0065] Once step 356 is completed, a three dimensional surfaceconsisting of the points which correspond to each trackable patch andinterpolations between those points has been generated. In step 358,coordinates of the points corresponding to the modeled surface areoutput in a standard format. In some embodiments, the raw trackablepatch points are output. In other embodiments, points are interpolatedbetween the raw trackable patch points, so that a regular array ofpoints representing a three dimensional surface is generated. Eachtrackable patch point is already associated with a color value becausethe trackable patch points are associated with the trackable patch colorinformation. The color value of the trackable patch is simply attributedto the point determined for that patch. Step 358 outputs the coordinatesand their color values. The process is completed at 360.

[0066] The process of FIG. 3B generates three-dimensional surface datafrom a set of a two dimensional images in a manner that associates colorinformation with the three dimensional points during the generation ofthose points. Indeed, the color information is used to identify thepoints which are tracked thereby enhancing the tracking process. Thesystem does not identify the surface of the object independent of colorimage information and then match the surface points to colorinformation. In the system depicted in FIG. 3B, optical detectors obtaincolor images of the object. The 3-D surface points of the object are notdetermined independently from that color image information. In fact, thesurface points of the object are not directly determined, rather, thelocations of the features located on the surface are determined. Thosesurface features include color information. Therefore, the locations ofcolor features are directly determined and do not need to be mapped ontoa surface model which is independently generated. The regularly spacedpoints of the surface model are then generated from the pointsrepresenting the color surface features by interpolating between thesurface feature points.

[0067]FIG. 4 illustrates a process 310 that can be performed on theimages before they are stored. The process starts at 400. Step 402analyzes the difference between the current acquired image and theprevious acquired image. Step 404 applies a compression technique to thedata to reduce the amount of storage space taken up by the data. Theprocess is finished in step 406. Thus, in this embodiment using process310, the data is compressed for more compact digital storage.

[0068]FIGS. 5A, 5B, and 5C further illustrate the color image pixel dataand a compression technique implemented in one embodiment of theinvention. FIG. 5A illustrates the vector nature of the color dataobtained. In the example, shown, red-green-blue (“RGB”) color data isused. This or any other color scheme such as cyan-magenta-yellow black(“CMYK”) can be implemented in accordance with the present invention.The three axes shown in FIG. 5A are labeled R, G, and B. Color valuescan be represented as vectors directed to points in this color space.For example, vector 500 represents the color value of a pixel. Thevalues of R, G, and B are represented by the point to which vector 500is directed. Vector 500 is the sum of the green component vector 502,the blue component vector 504, and the red component vector 506. Thus,for each point, there is a vector in color space describing the color ofthe point. The position or pixel location of the point is stored alongwith the three dimensions of color information which represent theintensities of the three color signals, RGB.

[0069]FIG. 5B illustrates an example of what the color data for thecolor blue looks like at times 0, 1, 2, and 3 for a line of pixels. Attime 0, no blue color surface feature is being imaged by the line ofpixels. At time 1, a surface feature with a blue component has movedinto the position being imaged by the line of pixels, so that 8 bluepixels are observed after X number of no blue pixels are observed.Following the 8 blue pixels, Y pixels of no color are again observed. Inthis example, only one intensity of blue is shown for the purpose ofsimplicity. In an actual example, varying intensities of blue could alsobe observed and recorded. At time 2, the surface feature has moved tothe right and now X+2 pixels are observed with no blue and 8 pixels areobserved with blue again. Y−2 pixels of no color are observed next. Attime 3, the blue feature has moved to the right one more pixel and soX+3 pixels of no color are observed followed by the 8 blue pixelsfollowed by Y−3 pixels of no color.

[0070] It can be appreciated that recording the color value of eachpixel for each color would generate a large amount of data. FIG. 5Cillustrates how the data can be compressed by recording only the changesin the color data, and then using run length encoding for those changes.Run length encoding techniques are well known to those skilled in theart. At time 0, no color is observed, and so the data stored is simplyno color or black. At time 1, X pixels are still no color, so thatnumber of pixels is recorded and associated with no change. Next, 8pixels have changed color to blue and so 8 pixels are recorded as havinga positive blue change. Finally, the remaining Y pixels have notchanged, so Y pixels, no change is recorded. At time 2, the X pixels onthe left side which had no color have not changed and so X pixels arerecorded as having no change. Since the blue image has shifted twopixels to the right, the next two pixels which were formerly blue nowhave no color. Both pixels are recorded as two negative blue pixelssince the color change for them was negative blue representing the lossof blue color. The next 6 pixels were formerly blue at time 1 andremained blue at time 2 and so no change is recorded for the next 6pixels. The next two pixels were formerly not blue and have become blue.Therefore, the next two pixels are recorded as having positive bluevalue representing a positive blue change between time 2 and time 1. Thenext Y−2 pixels were blank during time 1, and remain blank during time2, so no change is recorded for the next Y−2 pixels.

[0071] At time 3 the blue feature has moved one more pixel to the right.The first X+2 pixels in the linear array had no color at time 2 andstill have no color at time 3. Therefore, no change is recorded for thefirst X+2 pixels. The next pixel was formerly blue but, since the bluefeature has moved one pixel to the right, that pixel is now has nocolor. Therefore a negative blue color change is recorded for thatpixel. The next 7 pixels were blue at time 2 and remain blue at time 3.Therefore, no color change is recorded for those 7 pixels. The nextpixel had no blue color at time 2 and has a blue color component at time3. A color change of positive blue is therefore recorded for that pixel.Finally, the Y−1 remaining pixels were formerly blank at time 2 andremain blank at time 3 and so no change is recorded for those Y−1pixels.

[0072] From this example, it can be seen that as a surface feature movesacross the pixels at successive times, it is possible to represent theimage of the feature by recording only the changes in color values foreach pixel at each successive time. Successive pixels which do notchange color can be simply noted without the need to store threedimensions of color value for each individual pixel. This is only oneexample of a data compression scheme which is used in one embodiment ofthe present invention. Other compression techniques can be used asalternatives to or can be used in combination with this compressiontechnique. It is only required that the data be stored in a format whichwill be accessible and expandable later on for processing of the twodimensional images to determine a three dimensional surface.Alternatively, if storage capacity is not a problem, data compressioncan be eliminated.

[0073] In other embodiments of the invention, surface attributes otherthan color are derived and stored in connection with the threedimensional surface data. For example, specularity, emissivity, andabsorption can be derived from the surface geometry and the orientationof the local surface in multiple views at multiple angles with respectto the surface. In certain embodiments, these attributes also aid indistinguishing trackable patches.

[0074]FIG. 6 illustrates the process 352 that identifies the silhouetteof the object in each image. The process starts at 600. Step 602 testswhether the process is finished with the images. If the processor isfinished with the images, then the process terminates at step 604. Ifmore images remain to be processed, step 606 applies a filter kernel tothe image which is herein incorporated by reference. As is known tothose skilled in the art, a filter kernel is a set of coefficients whichis convolved with an image (an XY array of pixels). Certain filterkernels, such as the Canny and Sobel kernels, highlight edges byproducing a high correlation at locations which represent edges inimages. Edge detection using filter kernels is described in: “OnDetecting Edges” by Nalwi, PAMI, Chapter 8, pp. 699-714; “Finding Linesand Edges in Images” by Canny, MIT Technical Report TR-720, 1984; “OnCalibrating Computer Controlled Cameras for Perceiving 3D Scenes” bySobel Artificial Intelligence, Vol. 5, pp. 185-198, 1974; and “AComprehensive Approach to Edge Detection” by Canny, PAMI, Chapter 8, pp.679-698, 1986. By correlating the filter kernel with the image at allpoints, it is possible to determine the edge of the object for theobject silhouette, by analyzing the correlation value. The silhouetteedges are determined in step 608. Control is transferred back to step602 to check whether there remain other images to be processed forsilhouettes.

[0075] The purpose of determining the silhouette of the image is toconstrain the amount of area over which surface features are searchedfor and identified for the object. A flying insect or a noise spikerecorded by the detector may exist outside the area of the object shownin a given image. Noise spikes or insects may appear to be a goodcandidate to a be a trackable surface feature, but if the silhouette oredge of the object has been determined and the insect or noise spike isoutside of that edge, then it will not be designated as a possibletrackable surface feature. This simplifies the search for surfacefeatures and reduces computer processing of the image data by limitingthe area to be searched and also prevents extraneous surface featurepoints from being identified and mapped as surface points. In certainembodiments, the search for surface features is further limited to anarea within the silhouette as is described below.

[0076]FIG. 7 illustrates further detail regarding process 608 of FIG. 6wherein silhouette edges are found along each scan line. The processstarts at 700. In step 702, the processor begins at the left edge of theimage and correlates the kernel with the pixels of the image to find acorrelation maximum which corresponds to a potential left edge. In step704, the processor moves in from the right edge of the image andcorrelates the kernel with the image data to find potential right edges.In step 706, a heuristic algorithm is used to determine left and rightedges of the object. In this step, edges are distinguished from bugs orblips by the nature of the edge. In one embodiment this is accomplishedby distinguishing between the continuous nature of an edge verses theisolated spatial nature of a spec or blip. Any alternative heuristicalgorithm which exists for determining edges in such instances may beused within the scope of the present invention.

[0077]FIG. 8 illustrates the process 354 of FIG. 3B implemented todetermine a set of trackable patches. The process starts at 800. Step802 determines whether the processor is finished with all images. If theprocessor is finished, the process ends at step 804. If the processor isnot finished, control is transferred to step 806 and the processorlocates the vertical center line of the image being processed. Next, theprocessor steps through the image to look for trackable patches startingat the center of the image and searching outward.

[0078] The size and dimensional nature of the trackable patches variesin different embodiments. In certain embodiments, trackable patches aresearched for in individual scan lines, so that the trackable patches areone dimensional. In other embodiments, the trackable patches aresearched for across several scan lines at once so that the patches aretwo dimensional. The size of the trackable patch searched for is fixedin some embodiments at a certain pixel area, for example 10.times.10. Inother embodiments, the area of the trackable patches is notpredetermined and may vary in size for different areas of the image.This enables the system to be flexible and select trackable patches ofan optimal size for the type of trackable features found on the object.In general, when an “area” is referred to as being checked for trackablepatches, any size or dimension area is intended, including a line ofpixels.

[0079] Step 808 checks whether the processor is finished testing allparts of the image. If the processor is finished, then control istransferred back to step 802. If the processor is not finished, then thenext unsearched area of the image is searched and analyzed to determineif it contains any trackable patches in step 810.

[0080] A number of ways exist for determining whether an area or sectionof the image is a good candidate for a trackable patch. A good trackablepatch is a series of pixels which have RGB vector values which arereadily identifiable and distinguishable from the RGB vector values inother areas of the image. Therefore, a distinctive coloration of a patchis an asset to its trackability. The trackable patch RGB vector valueswill be correlated with the RGB values in other images which representother views of the object. If the trackable patch is readilydistinguishable, then the correlation will yield a distinct spike at thenew location of the trackable patch in the other images and the patchwill be successfully found or tracked.

[0081] A number of methods exist for determining how unique oridentifiable a given area in an image is, and therefore whether the areais a good candidate to be designated as a trackable patch. One method isto compute the variance values of the pixels within the area. A highvariance value will indicate that the pixel values are changing and thuswill at least be readily distinguishable from a solid or unchangingcolor background. A more sophisticated method is to convolve differentkernels with the image area being tested to judge the quality of thesurface features and its likelihood of being trackable. Standard kernelssuch as those defined in Canny and Sobel, supra, can be defined as astandard kernel used to check for trackable patches. Alternatively, alearning or smart system in some embodiments has the capability ofdeveloping customized kernels on the fly which are optimized for thetype of surface features found on the object being scanned. The size oftrackable patches, and the kernels used to identify them may be heldconstant or may be varied.

[0082] As noted above, step 806 locates the vertical center line of theimage. The system begins at the vertical center line of the image andthe search proceeds outward for trackable patches. The reason thattrackable patches are first looked for at the center line of the imageis that surface features are most likely to be completely and accuratelysensed without distortion when they are observed head-on by thedetector. However, areas to the left or right of the centerline can alsobe used. As surface features rotate away from the center line of theobject, they will eventually pass out of the view of the detector.Before passing out of the view of the detector, the surface featureswill begin to become partially obscured and distorted as they are viewedobliquely by the detector. For example, at a 45 degree angle, a circleon the surface of the object will appear to the detector to be an oval.Obscured and distorted surface features are more difficult to accuratelytrack because they change between images and it is also difficult todefine a consistent location point for them.

[0083] In step 812, the processor marks the trackable patches found inthe area searched. This includes storing the color data for the pixelsin the patch and storing the location of the patch. In step 814, theprocessor increments a distance away from the center line to define anew area to search and control is transferred to step 808. As notedabove, step 808 determines if the image is finished being tested. In oneembodiment, this is done by checking whether the entire area within amaximum distance from the center has been searched. The distance fromthe center line over which the processor will search for trackablepatches can also be varied. FIG. 8A illustrates an image being searchedfor trackable patches by the process 810 of FIG. 8. The top portion ofFIG. 8 illustrates object 100 and area 850 which is magnified below.Area 850 consists of a number of areas or sections 852 which, in turn,consists of pixels 854. Area 850 is located at the center line of object100 and so will be tested by the processor on its first pass. Eachsection 852 of area 850 will be checked to determine whether it is agood candidate for a trackable patch. The vector color data from thepixels 854 is checked to see if it contains characteristics which areexpected to be readily identifiable and distinguishable from otherareas.

[0084] As noted above, the processor begins at the center line, C.sub.iand checks outward for good trackable patches because features are mostlikely to be identifiable at the center. In other embodiments, thecomputer can check for patches starting with a location other than thecenter of the image. In FIG. 8A, the trackable patches are shown assquares which have a predetermined area or number of pixels, in thiscase, five by five. In other embodiments, the trackable patches havevariable or irregular sized areas. Different predefined sized areas canalso be used. The important feature is that patches on the surface areidentified in the image so that the points corresponding to thosepatches can be determined and tracked in other images.

[0085]FIG. 9 illustrates the process 356 of FIG. 3 implemented todetermine the radius of the location of patches on the surface of theobject as the object is rotating. As noted before, a set of twodimensional images of the object are acquired as the object rotates.These images include surface features of the object located in atwo-dimensional space and it is desired to derive the three-dimensionallocation of the features from the two-dimensional information in theimages. Features which are likely to be trackable are designated astrackable patches.

[0086] A three dimensional surface is derived by locating each of thepatches. This is done by tracking the patch across a number of viewswhich represent angularly rotated images of the object. As the object isrotated (or virtually rotated if multiple detectors or a movabledetector are used—whenever the object is described as being, rotated, itshould be understood that virtual rotation is also included), featureswhich are located a longer distance from the axis of rotation move agreater distance than features which are located a shorter distance fromthe axis of rotation. A radius from the axis of rotation of the objectis derived for each trackable patch which will account for the movementof the trackable patch in the different images.

[0087] The process starts at 900. Step 910 determines whether theprocessor is finished with all patches. If the processor is finishedwith all patches, then control is transferred to step 912 and theprocess ends. If more patches remain to be processed, then control istransferred to step 913 and a patch is chosen, together with an initialimage in which the patch is found. In step 914, the processor checkswhether the patch lies outside of the tracking area within the image. Ifthe patch is not outside the tracking limit, then the processorcalculates the expected path of the patch in the image in step 916. Ifthe image is the initial image to be processed, then the expected pathwill simply be the initial location of the patch in that image.

[0088] Next, in step 918, the processor finds the exact position of thepatch in the image and stores that position for that image. In step 920,the processor updates the patch kernel. The reason for updating thepatch kernel is that the patch will change as it moves across the imagefrom the center towards the tracking limit. The tracking limit definesthe area of the image in which patches will be tracked. This area isbounded in one embodiment across a 90 degree range. Although thetracking limit is set so that features within the limit remainrelatively constant, it is possible near the edges of limit that theimage of the patch will change more and more rapidly with angulardisplacement. The changing of the image of the patch makes it difficultto track the patch and increases the possibility of error.

[0089] Although within the region over which the patch is tracked, thepatch may change considerably from the center of the region to the edgeof the region, it is fortunate that, in many cases, the patch willchange in a relatively continuous manner. Therefore, although the patchwhen viewed at the edge of the patch tracking region will appear verydifferent than the patch when viewed at the center of the patch trackingregion, the patches viewed in areas of the patch tracking region whichare close to each other will be similar. To take advantage of this, thekernel used to search for the patch is changed with each successiveimage so that the patch searched for in each image is actually the patchwhich was found in the last image, not the initial patch which wasdefined in the center image. This makes it much easier to correlate thepatch and to successfully track the patch.

[0090] Once the patch kernel is updated in step 920, the processorobtains the next image in step 922 and control is transferred back tostep 914. When step 914 determines that the image limit has beenreached, control is transferred to step 940. In step 940, the data isfiltered or smoothed. Filtering and smoothing consists of applying knownstandard statistical and filtering techniques for cleaning up the dataand perhaps rejecting bad data points. The data consists of thepositions determined across a plurality of images for each patch. Thisdata is associated with the color pixel information for each patch. Instep 942, a recursive least square (“RLS”) algorithm is run to fit thepoints to a curve. In step 944, the radius from the axis of rotation ofthe object to the surface of the object at the trackable patch isdetermined which will account for the motion of the trackable pathacross the images. Control is then transferred to step 910 whichproceeds to the next patch or, if all patches have been processed,control is transferred to step 912 and the process ends.

[0091] At the completion of the process 356, three-dimensional surfaceinformation about the object has been obtained. That three-dimensionalsurface information is integrally linked to color data because thevector color data of the trackable patch was used to find the patch ineach successive image so that the motion of the patch could bedetermined as the object rotated in different images. The radius of thesurface portion containing the trackable patch combined with thetwo-dimensional pixel information obtained from the optical detector isthen be transformed to provide a three-dimensional representation of thepoint in any desired coordinate system.

[0092]FIG. 9A illustrates a set of patch tracking limits as used by step914 of FIG. 9. Detector 110 views object 100 straight-on at point 900 onthe surface of object 100, i.e. along the centerline C.sub.i of theobject. As noted above, surface features and trackable patches areviewed with the least amount of distortion at this head-on angle. As thetrackable patch is rotated away from point 900, it appears to detector110 to change shape and becomes distorted. In one embodiment, thejudgment is made that it is not worthwhile to attempt to track trackablepatches beyond point 902 and point 904, which are located at a 45 degreeangular limit from point 900. The tracking limit in each image will be avertical line corresponding to this angle. In other embodiments, otherlimits are chosen. Limits can also be learned by the system ordetermined based on the nature of the data so that no predeterminedlimits need to be set.

[0093]FIG. 9B illustrates the motion of trackable patches acrossdifferent images with different angular displacements as calculated instep 916 of FIG. 9. Object 100 in this image is a symmetrically shapedvase so that the silhouette of object 100 remains constant but featureson the surface of object 100 move as object 100 is rotated. Object 100is shown with a trackable patch 950, a trackable patch 952 and atrackable patch 954. Trackable patch 954 is shown located at the exactintersection of the horizontal and vertical center lines of the detectorview. When an angularly displaced image of object 100 is analyzed tofind trackable patch 954, it is not necessary to search the entire imagefor the trackable patch in a random manner. Trackable patch 954 isexpected to move along a line 956 and so the search for trackable patch954 in a successive image of object 100 should be executed along line956. Note that line 956 is straight because trackable patch 954 islocated at the center point of the detector view in the first image.Similarly, trackable patch 952 is expected to follow a line 958 inimages in which trackable patch 952 is angularly displaced, and a line959 is the path which trackable patch 950 is expected to follow inangularly displaced images. Line 958 is curved, unlike straight line956, because line 958 does not pass through the center C.sub.d of thedetector view. Features not located in the center are expected to followepipolar trajectories as is known to those skilled in the art. Line 959is even more curved than line 958 because line 959 is further from thecenter of the detector view than line 958. Thus, it is possible toquickly locate the trackable patches in angularly displaced imagesbecause the expected path of the trackable patch is known from theepipolar trajectories as object 100 rotates.

[0094] The distance the trackable patch moves along its expected pathfor a given angular displacement, or the speed of movement of eachtrackable patch as the object rotates, is not known. The change inposition will vary with the radial distance of the trackable patch fromthe axis of rotation of the object. This is how the radius from the axisof rotation of the object is determined.

[0095]FIG. 9C illustrates the determination of an exact position of thepatch in an image as determined by step 918 of FIG. 9. Trackable patch960 was observed in a former image and its location is defined by itscenter point 961. The expected path 962 of center point 961 is known.The processor searches for a good correlation of trackable patch 960with the image data for patches along expected path 962. Patch 964,represented by a dashed line, does not present a good a correlation aspatch 966, which is represented by a solid line. Patch 966 is determinedto be the patch and the location of the trackable patch in the new imageis determined to be point 968 which represents the location of patch966.

[0096] In this example, the center point of the patch is used torepresent the location of the entire patch. This approach works as longas the patch is small. In other embodiments, multiple points are definedfor a patch or a weighted average point which is based on the colors ofthe pixels which make up the patch is defined for the patch. In theillustrated embodiment, the location of the patch in the differentimages and the motion of the patch in the different images which areangularly displaced is represented by the motion of the center point 961which represents the center of trackable patch 960 to point 968 whichrepresents the center of the angularly displaced patch 966.

[0097]FIG. 9D illustrates the filtering of the raw data points asperformed in step 940 of FIG. 9. Point 970 is shown as beinginaccurately derived because it is located away from the expected curve.After the filtering process, point 970 has been moved to point 972 whichlies in the expected path. A number of standard filtering techniques canbe used. The frequency of the rotation of the object is known and allsurface feature motion should occur at a spatial frequency correspondingto that frequency. In one embodiment, a brick wall filter is used tofilter the data to remove motion occurring at other frequencies.

[0098] In embodiments in which the object is not rotated at a constantfrequency, or where views of the object are obtained without rotatingthe object, (for example, by using multiple cameras) then the spatialfrequency of the occurrence of features in images will not correspond toa frequency of rotation of the object. In such embodiments, the raw datais filtered using a modified Z-transform method. Modified Z-transformmethods are used to filter data when the displacement is non-uniform.

[0099]FIG. 9E illustrates how the radius is determined from the pointsrepresenting the path of the trackable patch across angularly displacedimages and corresponds to steps 940 and 942 of FIG. 9. FIG. 9E is a plotof curve 980 which represents the first derivative of the distance, orthe speed of the patch as it is angularly displaced from the center ofthe image versus the angular displacement of the patch from the center.When the angular displacement is zero, the displacement of the trackablepatch is zero and its linear speed is a maximum value. As the angulardisplacement increases, the speed will change according to the cosine ofthe angle of displacement.

[0100] The radial distance, R, of the patch from the axis of rotation ofthe object can be determined from a graph of the speed of the patch asshown on curve 980. Note that the frequency of this curve is well knownso the data can be filtered and the amplitude of the curve can beaccurately determined. After fitting the actual rate of displacement ofthe trackable patch to the cosine curve, the amplitude of the cosinecurve is determined. The radius of the trackable patch is derived fromthe amplitude. Other processing methods are used in differentembodiments to derive the radius. In one embodiment, the displacement ofthe patch, not the velocity is fit to a sine curve. An embodiment canuse any processing method available to derive a radius which accountsfor the patch motion.

[0101]FIG. 10 illustrates the post processing process that can occursonce the radius of the trackable patch is known. The process begins atstep 1000. In step 1010, the radial distance data for the trackablepatches is combined with the two-dimensional trackable patch data fromthe images and converted to a desired coordinate system. In step 1020,the color data associated with the trackable patch is converted to adesired color system for storage. Step 1030 performs interpolation anddecimation of the points. In one embodiment, all of the trackable patchpoints are interpolated so that a regular array of surface points can bedefined to model the surface of the object. In step 1040, the pointsderived in step 1030 and the color values associated with those pointsin the form determined by step 1020 are stored in a data structure. Theprocess is completed at 105.

[0102] In this process, it is especially important to note that nomatching of color data with three-dimensional position data is everrequired. The color data for the trackable patches is already associatedwith the trackable patches which define the surface points of theobject, and, in fact was used as an aid in calculating the threedimensional locations of those points. When the trackable patch pointsare decimated and interpolated, the color values are likewiseinterpolated. No misregistration of color occurs because the colorinformation is already associated with the patches whose locations aredetermined to model the surface of the object.

[0103] In an alternative embodiment of the invention, a pattern isplaced on the object to enable or enhance the identification oftrackable patches and the trackability of surface regions. Thisembodiment is particularly useful for capturing 3D images of objectsthat have substantial uniformity in their surface texture and colorvalues, such as a bowling pin.

[0104] According to this embodiment, the patch image capture,patch/kernel identification, patch kernel tracking, radial distancedetermination, and post processing up to step 1010 in FIG. 10 isperformed on the object with the pattern just as described above. Duringimage capture, however, two sets of 2D image data are captured. One setof image data is unpatterned or “normal” color data and the otheroverlying set of 2D image data is data from the object with theprojected pattern on it.

[0105] Once the two sets of data are captured, patterned data is usedfor all of the tracking procedures described above for regions of theobject that are highly uniform without the pattern. Alternatively,patterned data can be used for the whole object.

[0106] When tracking and computation of radial distance data fortrackable patches is known, then, in step 1010 and/or 1020, theunpatterned color data that was initially associated with each trackablepatch is combined with the radial distance data and is stored in the 3Dimage file. Once patch tracking is complete, the patterned data can bediscarded. Note that in this embodiment, complex “matching” or “mapping”of color data with three-dimensional position data is not required. Thisis because the unpatterned color data is always associated with thetrackable patches after 2D-image capture, even though the unpatterneddata is not used in the tracking process.

[0107] It is not necessary that the geometry of pattern be known, and infact a random but fixed pattern can be used. A preferred pattern willhave high-contrast detail to allow for easy tracking of the patternedobject. The size of the detail features is preferable determined withreference to the amount of surface radial position detail that thesystem is attempting to carry. Detail features will preferable largeenough so that at least 3-30 pixels in a capture device fall within thesame detail area, but not so large that substantial regions of theobject have the same color values applied to them. The pattern isdesigned to produce varying color values (values such as hue, saturationor intensity) over the surface of the object and these varying valuesthen enable or enhance the trackability of a region or the surface overN degrees of rotation. Examples of patterns that could be used foroperation of the invention include a random, multicolored paint-splatterpattern or a complex multicolor paisley pattern

[0108] However, according to a further embodiment of the invention, apattern of known geometry (such as stripes or a checkerboard) can beused. In this case, an analysis of the deformation of that geometry overthe object surface, using known techniques, can be integrated into thesteps described above to provide additionally data about the topologyand surface normal of the patch.

[0109] How the pattern is applied to the object does not change theoperation of the invention as just described. In fact, a patternaccording to the invention could be applied to the object with aphysical fixed coloring substance, such as random multicolored paintsplatters.

[0110] As a practical matter, however, a pattern is most easily appliedusing a light projection. Such a light pattern may created with apatterned colored slide or gel placed before the light source or by anyother means that can project light pattern onto an object that is fixedrelative to the object. The pattern can be created by placing one ormore slides in front of the light sources used to illuminate the objectfor capturing the unpatterned image, or separate light sources can beused to create the pattern. The pattern as it falls on the image may beprojected by one light source, or it may be a composite pattern ofprojections from several light sources.

[0111] An important characteristic of the pattern, in one embodiment, isthat the pattern remains essentially fixed relative to the object'ssurface. If the object is rotated for image capture, the pattern must berotated exactly with the object so that a point on the pattern alwaysoverlays the same point on the object. This same result can beaccomplished by keeping the object and pattern sources fixed and using arotating capture device or using multiple capture devices.

[0112] This technique of creating contrasting values upon the surfacewith a pattern may or may not be applied globally, as some regions ofthe object under normal illumination may be sufficiently trackabilitywithout the assistance of applied patterns. In such case, the projectedpattern tracking assisting values will only be employed in regions whereit is necessary to accurately track patches. This hierarchical defaultscheme can also be applied as multiple light sources illuminate theobject to produce contrasting values in different regions that overlap.In an instance where multiple light sources each create trackablepatches will be chosen or eliminated to produce the greatest overalldensity of trackable patches within such a regional condition.

[0113] In a further embodiment, contrasting lighting of known structurescan be applied in an additional step. The lighting can be synchronizedto a moving object or be projected from a static source while the objectmoves (rotates) or from a moving (rotational) source while the object isstill. For instance, if known lines of known width and spacing from alight source that rotates with the camera as the object is still,observation of the pattern on the surface can be utilized to predict thedeformation of the pattern. Then the derived information can beintegrated into the invention's procedure to produce additionalinformation about the estimation of surface topology and surface normalsof a given patch or region of patches.

[0114] In a further alternative embodiment, a camera with control andsoftware according to the invention, can be pointed outward as it ismoving about an axis to capture a 3D image of a room or environment. Thecamera can also be pointed inward but looking beyond the radial distanceof the cameras. In this embodiment, patches are identified and trackedin the same manner as described above. The alternative embodiment oftracking patches using patterns can also be used in this embodiment andmay be especially helpful in tracking large, uniform areas, such asblank walls.

[0115] Continuation

[0116] The following descriptions are added to the above referencedrelated applications and contains both repeated descriptions of that inthe related applications as well as new material; in any case beingreferred to as a continuation.

[0117] This continuation describes the core processes and elements of asystem architecture which can serve as the infrastructure forfacilitating the integration of various techniques and equipmentutilized for 3D object surface feature capture into a singularoperational platform. Prior art examples of such 3D object surfacefeature capture processes and equipment are actually embodied in adiverse, and often incompatible, or at least difficult to integratearray of systems and functional operations. This continuation provides aunique solution to this problem, in the form of a universalinfrastructure enabling a heretofore unattainable level of systemintegration incorporating a diverse range of 3D object surface featurecapture systems and operations. This universal infrastructureincorporates the ability to utilize any or all variations of viewdependant lighting, such as interferometric patterning, spectralproperty analysis, and other related processes which have previouslybeen isolated as separate, discrete, and often incompatible procedures.The advantages of applying this unique infrastructure to such operationsand equipment is that it enables the automation of color alignment,measurements of surface properties such as specularity and reflectance,and other key data sets that allow for the simultaneous capture of suchsurface data sets as a contiguous, unified process. This is a majoradvance in the enterprise 3D object surface data capture operationswhere high accuracy, and high throughput capacity are desired.

[0118] Described here is a method of determining and exploiting therelationship between the camera and the individual 3D surface elementsthat compose the surface of an object. Related image data and datarelating to camera position and orientation, lighting and the 3D surfaceof an object are determined and processed using an organized processingstructure that is integrated with specific physical scanning set ups tocreate efficient and accurate scans of 3D objects. The fundamentalprocessing infrastructure is based on developing individual viewinghistories of identifiable 3D surface elements. The related physicalscanning set ups are based on specific architectural strategies thatorganize the layout of calibration objects that are used in the scanningprocess.

[0119] The position and orientation data of the camera will be referredto as the camera geometry. The surface orientation of a local surfacepatch will be referred to as the surface normal vector. The relationshipbetween the camera geometry and the surface normal vector of local patchwill be referred to as the viewing geometry. This continuation describeshow camera image data and related camera and viewing geometry data areobtained using various physical set ups. This continuation thendescribes how the viewing history archives the aforementioned data tostreamline the process of producing successful scans ofthree-dimensional color objects.

[0120] This continuation describes various embodiments that usestrategically configured calibration objects to efficiently andaccurately determine camera geometry (the location and orientation of acamera relative to a reference frame). The set of 3D pointscorresponding to the features of the calibration object on the planarobject support may be used as a reference frame. Visual components ofthe calibration objects generally contain high textural contrast toenhance the efficiency and accuracy of calibration procedures (such ascheckerboard patterns). Imagery may be integrated with the design and orlayout of calibration patterns to introduce image variation to permitthe identification of each 3D-calibration point. For instance, localuniqueness can be established by introducing variation of texture orcolor within or adjacent to a checkerboard pattern. This identificationof each point may also be facilitated by the introduction of geometricvariation.

[0121] This continuation describes various embodiments that incorporatethe use of projected contrasting lighting, including projection schemesincorporated by active range finding techniques. The active rangefinding techniques often produce separate sets of range data. Theseparate sets of range data need to be aligned. The alignment of theseparate sets of range data may be performed using numerous knownmethods. Known methods include the identification and tracking offeatures and tracking scanner position [Faugeras 1986, Stein 1992],surface signatures [Johnson 1997] using the axis of rotation [Dorai1997], using point correspondence matching [Chen 1998,Chen 1999], oruser input by registering the 3D positions of identifiable 3D pointsthat are common to multiple scans. The invention uses the preciselyknown location of identifiable 3D points that are located on the objectsupport platform on or adjacent to the calibration objects to align theseparate sets of range data to produce a continuous 3D point clouddescribing the surface of a scanned object

[0122] This continuation also describes methods where the geometricextraction process may be decoupled from the tracking of the image of asurface patch. The decoupling permits the use of viewing geometryhistory and calibration strategies as described and can provide aninfrastructure by which an array of active 3D shape extraction (alsoknown as active range finding) technologies may used to produce preciseand efficient determination, selection and alignment of color data withindividual 3D surface elements. The decoupling also permits the preciseand efficient determination, selection and alignment of view dependentcolor and surface property data with individual 3D surface elements.

[0123] Imagery from cameras is registered to the surface of objects inthis system by using a common reference coordinate system for cameracalibration objects, the calibrated locations of the cameras, and the 3Dmeasurements of target object surface geometry including shape andsurface normals.

[0124] The location and orientation of a camera with respect to a targetobject may be determined through the use of calibration objects placedat known locations with respect to each other. This determination andrecording of the camera position and orientation can contribute to theproviding a basis by which optimal image data may be selected for colormapping. Furthermore camera geometry data may be used to determine thesurface reflectivity and other surface attributes/properties of thesurface of the target object.

[0125] The camera trajectory may be determined by placing calibrationobjects at known or determinable locations relative to each other. Thecalibration objects produce imagery that contains identifiable features(e.g. comers within checkerboard patterns) that are processed todetermine camera orientation and position. As the camera is moved,various individual calibration objects may be obscured by the targetobject. In order to ensure that the camera position and orientation canbe determined at all positions of a trajectory, the calibration objectsare positioned in such a manner that some number of calibration featureswill be visible to the camera at all camera locations during theacquisition of images of the target object.

[0126] If multiple objects are imaged by the camera at each location,the location and orientation of the camera relative to the objects canbe determined [Introductory techniques for 3-D computer vision. E.Trucco, A. Verri. Prentice-Hall, 1998]. Since the calibration objectsare placed at known and fixed locations with respect to each other,determination of the camera location and orientation allowsdetermination of the location and orientation of the camera with respectto the target object. The orientation of the camera may be expressed asa “line of sight” vector.

[0127] If the object shape is unknown, measurement of the cameralocations allows well-known triangulation techniques [Error propagationin two-sensor 3D position estimation, J. N. Sanders-Reed, OpticalEngineering, 40 (4)] to be employed to determine the 3D location of anyarbitrary point on the surface of the object. Active projection of lightcan be used to generate a fine grid of identifiable points on thesurface of objects which may not have naturally identifiable points.Alternatively, numerous active range finding techniques may be employedto determine surface geometry coordinates of objects that may or may nothave any naturally identifiable points.

[0128] Once the object shape is known, whether measured as described, orknown a priori through other means, the surface representation of theobject may be divided into numerous 3D surface elements each of whichcorresponds to an actual surface patch on the scanned object. A surfaceelement is defined as the 3D representation digital of the geometry ofan actual surface on a scanned object. Independent measurements ofcolor, surface reflectivity and other surface properties are obtained byanalyzing image, 3D and camera data relating to a 3D surface element.Surface orientation data of a 3D surface element may be estimated andrecorded with 3D coordinate data of said 3D surface element. For each 3Dsurface element, the surface orientation (e.g. the surface normalvector) is compared with the Line Of Sight vector from each cameralocation. The camera location giving the smallest difference between thetwo orientation vectors often provides the clearest image of the surfacepatch (unless another portion of the object obscures the view or ifshadows or reflections contaminate the image data).

[0129] Hi fidelity registration of color and surface properties with 3Drange data requires accurate determination of camera parameters.

[0130] Image based methods of determining the camera positions areusually inexpensive and mechanically flexible. They may be combined withmechanical camera systems to enhance functionality.

[0131] The location and orientation of a camera with respect to a targetobject may be determined using calibration objects placed at knownlocations with respect to each other. The calibration objects providepoints in space that are used for calibration purposes. Thisdetermination of the camera location can be used to select the bestimagery to determine the surface reflectivity of each surface patch ofthe target object. One calibration method originated by Tsai is based inthe “pinhole camera” model and uses a calibration object of preciselyknown geometry and to solve for camera parameters and a radialdistortion coefficient given the image projections of several points onthe calibration object. See R. Y. Tsai, “A versatile camera calibrationtechnique for high-accuracy 3D machine vision metrology usingoff-the-shelf cameras and lenses,” IEEE Trans. Robotics and Automation,vol. 3, no. 4, pp. 323-344, 1987.

[0132] We will consider a single line path connecting each point on acamera image plane, through the center of the lens, to the point on someobject that is visible at that point in the image, as shown in FIG. 11.FIG. 11 shows that an image 12 in a camera 13 is flipped upside down andbackwards as it is projected onto the image plane. The projectionproceeds from the object 14, along rays 15, through the “Pinhole” oroptical center of the lens system 16, to the image plane 12. In thegeometry of computer graphics calculations, it is customary to simplifyfurther by visualizing the image plane as being in front of the “eye”lens center at a given distance. This avoids the confusion of flippingthe image. It could also correspond to an outward projection of pointson an image, as shown in FIG. 12, from the optical center 21 of aprojection light source, through an image transparency 22, and intolight rays 23 that intersect an object 24 at single points.

[0133] The invention may use a single calibration object. The preferredembodiment uses a ring of calibration objects. Numerous calibrationtechniques may be applied within the framework of the invention.Examples of a range of techniques may be seen in: Camera CalibrationWith one-dimensional Objects, Zhengyou Zhang, December 2001. Othertechniques as shown in M. Pollefeys, R. Koch, and L. V. Gool,“Self-calibration and metric reconstruction in spite of varying unknowninternal camera parameters,” in Proc. Sixth Int. Conf. on ComputerVision, pp. 90-91, 1998.

[0134] After locating the feature points of the calibration objectsvisible in a particular image, and pairing the reference-space andimage-space coordinates or each point, the camera calibration functiondetermines the reference-space coordinates of the camera center,direction of view, and any rotation around the view vector (theextrinsic camera parameters.) This is standard practice (ref. Intel OpenSource Computer Vision Library), and also determines the intrinsiccamera parameters including the distortion due to wide-angle lenscurvature that must be compensated.

[0135] A single calibration cube may not be the optimal solution as itmay occlude or be occluded by an object within the field of view. Apreferred embodiment incorporates the use of a calibration ring.Calibration of precisely known geometry objects are configured on aplatform at well-known positions relative to a reference coordinatesystem, which can be placed anywhere desired. For example, one canchoose the reference coordinate system origin (zero) point to be at thecenter of the object platform, with perpendicular one-unit-long X and Ycoordinate direction vectors in the plane of the platform and the Zcoordinate direction pointing upwards. The calibration object may be ofzero dimensions (points), one dimension (lines), two dimensions(checkerboard patterns) and three dimensions (such as, a cone).Two-dimensional patterns (i.e. patterns of known geometry such ascheckerboard patterns and grids) may be substituted for or integratedwith the 3D objects.

[0136] The calibration ring is designed to act as continuous calibrationimagery for scanning object(s) inside and outside the camera motionpath. The 3D coordinates of the feature points are useful in aligningmultiple sets of 3D data. A calibration object may consist of points,lines, planes and various 3D shapes. The object may be with or withouttexture or color. Generally, the speed and accuracy of calibrationprocedures may be enhanced by knowing the precise measurements of objectshape and surface pattern. Additional efficiency and accuracy may beachieved where the calibration image source is composed of multipleplanes. The exact knowledge of a calibration object's geometry in 3Dspace or of the spatial relationship between multiple calibrationobjects also increases accuracy.

[0137] The integration of 3D calibration objects with the calibrationring provides the capacity to determine the position and incident angelof light sources. Embodiments that involve surface property extractionand projected active lighting may benefit greatly from this method.

[0138] The calibration objects are may be precisely configured withrespect to their position and orientation. Further the geometry of theirvisible features may be precisely known. Thus, for example, the exactobject-space coordinates of each corner of each calibration checkerboardpattern square are known as measurements relative to the referencecoordinate system. Camera calibration depends on the correspondencebetween the reference coordinates of the visible features of thecalibration objects, and the image-space coordinates from the cameraviews of those same features.

[0139] Furthermore, to aid the identification of calibration pointsrelated to the calibration objects imagery nay be introduced to createlocal variation of texture (for example color or random patterns).

[0140] Many approaches may be used to determine this camera informationin the process, one of which is detailed here. In FIG. 13 a ring ofeight calibration objects 31 is shown around the support base 32 onwhich an object to be scanned 33 is positioned. The calibration objectsare small three-by-three checkerboard patterns, each uniquely identifiedby a colored border to remove ambiguity. The diagonal position of theeight calibration objects is explained by the fact that they areactually arranged at the outer corners of two large checkerboard squares41 and 42, as shown in FIG. 14.

[0141] Each image has its own image-space coordinate system relative tothe camera position as the image was taken. For convenience, we placethe image origin in the center of each image plane, with X to the rightand Y upward within the image and Z perpendicular to the image. Theoptical center of the camera (the center of the lens aperture, or theviewpoint “pinhole” in a simplified camera model) is then somewhere onthe image-space Z-axis.

[0142] Practices vary as to whether the image-space positive Z directionpoints toward the camera or toward the object, and what the Zcoordinates of the camera and image are. Any convenient choice may bemade, as long as it is used consistently. Here the camera viewpoint isdefined to be at Z=−1 in camera coordinates, and the image plane to beat Z=0. The image-space Z coordinates of the platform and object(s) tobe reconstructed will then always be positive, but of course differentrelative to each camera location.

[0143] Tracked surface elements are the points on the surface of theobject to be reconstructed that can be identified in multiple views. Thenatural texture of the object may lead itself to fine-granularitysurface tracking of points on the surface. Otherwise, a texture must beapplied, either by projecting light patterns onto the object, or byphysical means such as applying a spray of paint splatters.

[0144] The present invention provides an infrastructure by which anarray of active 3D shape extraction, also known as active range finding,technologies may use the procedure of the invention to incorporateprecise color alignment and surface property alignment and thus improvetheir operative capacity and breadth of applications. The use of thecalibration ring may provide the infrastructure to align the separatesets of range data. If the object shape is unknown, measurement of thecamera locations allows well-known triangulation techniques to beemployed to determine the 3D location of any arbitrary point on thesurface of the object. Active range finding techniques can be used as togenerate a fine grid of unique points on the surface of objects, whichmay not have naturally identifiable points.

[0145] The process of active range finding is inherently dependent onutilizing an illumination source, which is dynamically incorporated intothe operation of the range finding system. In essence, even though thereare a variety of implementations of active range finding systems whichscan or measure various attributes of illuminated regions of space andsurfaces within that space, they all incorporate some aspect ofcontrolled illumination of the region being thusly measured.

[0146] Some systems, such as optical radar (LADAR) measure the actualtransit time of light emitted from a laser illumination source andsubsequently reflected from targeted surfaces. These types of systemsare most often used to capture 3D surface data of large structures orregions of space, as might be associated with buildings, complexindustrial structures, or even landscapes. Other forms of 3D surface ortopographical feature data capture are often facilitated by stereoscopictriangulation, which will rely on the projection of structured light(typically in the form of a lateral plane).

[0147] The lateral plane of light, when viewed at an angle divergentfrom the angle of projection as it intersects the surface beingilluminated readily reveals contour features of the illuminated surface.This is because any surface feature which is viewed from an angle whichis not perfectly parallel to the angle of illumination will cause anapparent deformation of the “line” of light illuminating the targetedsurface, which is directly proportional to the amount of surface depth,Other variations of this theme also utilize projected patterns of dots,line grids and graticules, depending on the particular requirements ofthe system resolution, topographical region capture time (an array oflines or dots can capture an entire region simultaneously, as opposed toa linear line scan process), types of surfaces being measured, thepresence of depth discontinuities (certain active lightingconfigurations will produce incorrect measurements in the presence ofnon-smooth surfaces), and other system requirement variations.

[0148] Additionally, other forms of pattern projection, such as Moirepatterns, and related interferometric methods, have been utilized toaccommodate topographical feature extraction from complex surfaces.Interferometric surface analysis in this context usually will consist ofthe stereoscopic projection of a pair of known patterns upon a targetsurface. When these projected patterns encounter a less than perfectlyflat surface, an interference pattern is generated which is readilyrecognizable.

[0149] Stereoscopic triangulation is used as a method of patterned lightprojection for extracting 3D topographical feature data from a complex3D surface. Relative depth perception from the reference plane ofprojection is a function of the baseline separation distance inproportion to the focal distance of the targeted surface. Stereoscopicvisualization techniques for 3D panoramic scene analysis have long beenutilized in machine vision and robotics applications. In the context ofrange finding analysis for 3D topographical surface data capture, thissame general concept can also be applied to the projection of structuredlight, and the analysis of interferometric patterns rendered upon thetargeted surfaces being thusly illuminated.

[0150] Stereoscopic triangulation provides a geometric framework forestablishing relative depth acuity (Z axis domain data) from theprojection plane of structured light. Moire or related interferometricpatterning is observable on the targeted surface as a function of thesurface deformation from planar perfection, where the deviation ofplanar surface geometry on the illuminated surface is directlycorrelated with the interferometric pattern geometry of the resultingpattern sets observed on the illuminated surface. Variations inresolution, in regards to the degree of interferometric patternanomalies correlated to actual Z domain distances (relative heightfeatures) is accommodated by adjustment of the ratio between the focaldistance of the projected patterned light sources, and the distance tothe targeted surfaces.

[0151] Angle of divergence from a stereoscopic source of patterned lightis represented as the ratio between separation distance at the focalplane of projection and the distance to the targeted surface, from whichZ axis domain data is extrapolated from the interferometric patternsobserved at the illuminated surface.

[0152] A time of flight laser range finder, in which the reflection timebetween the initial source of illumination, and the light reflected backto a detector, is correlated to the actual distance from theillumination source. This provides a mechanism for illuminating atargeted surface with a sequential series of laser light pulses, eachone of which is projected to a specific XY coordinate on the targetedsurface area, and from which relative Z axis (distance) values areextrapolated by variations in the measured photonic reflection times.

[0153] Examples of structured light illumination of a targeted surfaceinclude utilizing projection of a plane of light to reveal topographicalfeatures as a function of lateral deformation of apparent “line” ofillumination correlating to relative height (Z axis domain) of featureson the illuminated surface.

[0154] Triangulation of reconstructed object points uses multiplecalibrated images. Tracked points on the surface of an object to bereconstructed are the centers of tracked surface elements that wereidentified in many views. Each visible point in an image plane is on aline that passes through the camera viewpoint and the image point, andextends to the object. Two or more of these view lines, transformed intoreference coordinates, intersect to determine the three-dimensionalreference-space coordinates of a surface point. FIG. 15 shows just twoof what might be a large number of these digital images 51 and 52,positioned in three-dimensional space with their respective cameras 53and 54. The camera location parameters were previously determined,above. A particular surface element appears in both views 51 and 52. Asshown in FIG. 15, two lines 55 and 57 are projected outward from thepinhole camera centers 53 and 54, and through the surface patch centersin the respective images 51 and 52, making a triangle to thetriangulated point 58. Fine tracking across multiple views alsodetermines the surface normal at the point 58.

[0155] A shape representation of the surface of the reconstructed objectis constructed from the triangulated points. Triangulation firstproduces a point cloud representation that lacks most of the attributesof a surface shape representation. Geometric algorithms may be used totranslate the point cloud data into other surface elementrepresentations. The simplest one is to use a Voronoi adjacency diagramto produce a Delaunay triangulation that has fine-granularity triangularfacets joining adjacent triples of surface points. Other algorithmsproduce coarser optimal triangulations that satisfy approximation orcompression criteria, or curved surface representations such assubdivision surfaces or piecewise polynomial B-spline surfaces.

[0156] Profilometry is another use of patterned light projection. Inprofilometry, patterned light consisting of bright and dark bands isprojected onto the object. As shown in FIG. 16, the planar edges of theprojected light bands 63, when cast on the object 64, are seen in twocamera views at different angles 61 and 62 and reveal a curve whoseposition determines a curve on the surface of the object bytriangulation. If the light bands are vertical in relation to the objectplatform, it is sufficient to locate the straight-line shadow that theedge of the light band casts on the object platform. This uniquelydetermines the plane of the light band edge in reference coordinates.

[0157] Surface coloration of the reconstructed object consists oftexture map images associated with each surface element. The surfaceshape representation of the reconstructed object is rendered into aZ-buffer image from the calibrated point of view of each particularcamera image, and object number tags are assigned at each visible pixelpoint. Each surface element is projected into an image plane grid thatcorresponds to the pixel dot centers locations of a camera image. Asshown in FIG. 17, the projection goes along the view lines 71, from thesurface element centers 72 and 73, and through the image 74 and 75 andthe camera pinhole center 76. Two points 72 and 73 are shown that map tothe same point in the image, one nearer 72 and the other one fartheraway 73 and hidden by the first 72. The image-space coordinate system 77appears with both the edge-on 74 and rotated view 75 of the image. Depthis measured along the optical axis 78 to the perpendicular projections79 and 80 of the two points 72 and 73 onto the axis 78.

[0158] Pixel quality criteria may be used to select the best pixel data,such as frontalness where the surface normal points closely enoughtoward the camera to avoid edge-on views, or with a reflective object ina specular lighting environment. The surface normal may be used to avoidhighlight areas which will obscure the surface coloration. Also considerthe immediate neighborhood of a Z-buffer image point may be consideredto decide whether a point is close to being obscured, and so its visiblecolor would be “contaminated” by another surface.

[0159] Using methods previously described, the viewing history isdeveloped for each 3D surface element and used to align and select imagedata to each 3D surface element.

[0160] The visibility computation and matrix (as described below) can beimplemented in this embodiment to prevent contaminated 3D surfaceelement views from being mapped to the surface.

[0161] Frontalness settings may be used to automatically select theimage data of the patch within a viewing history that is likely to bemost optimal for mapping to a corresponding 3D surface element.

[0162] In one embodiment infrared lighting is projected for geometricextraction purposes and thus allow for scans to be performed under asingle lighting set-up, using infrared for shape determination andvisible light for color and reflectance measurement.

[0163] Pixel projection transforms individual selected image pixels fromthe image coordinates of a particular camera view to the reconstructedobject surface element visible in a Z-buffer rendering. Each surfaceelement representation has an intrinsic method of identifying locationswithin the surface elements. For example, triangular facets havebarycentric coordinates that locate points in the plane of the trianglewith respect to the vertex points and straight edges of the triangle.Tensor product curved surface representations such as B-splines haveparametric coordinates that are like a curved X-Y coordinate grid on adistorted rubber sheet. The task is to put the projected pixel colorinto the right point of the texture map image associated with thesurface element. Furthermore, pixel colors from potentially many cameraviews will be merged into a single texture map image. FIG. 18 shows apixel color sample 81 being projected along a ray 82 from the Z-bufferimage, to a location within a particular surface element. (The surfaceelement boundaries 83 are shown to illustrate this point.)

[0164] Surface reflectivity measurements are like surface colorationmeasurements, but may require different lighting conditions. Once thesurface shape has been reconstructed, possibly under patterned lighting,and the surface color under “white light” (generally ambient or diffuselighting where multiple light sources are often used), point source orspotlighting is used for reflectivity measurements of visible surfaceelements. The already known surface coloration texture map is utilized.Now, the many views of the surface in different camera views is used toexamine the differences in light reflected from the surface element withdifferent pairings of the surface normal with its angles between thedirection of view and the direction of the light source. These anglesare the main input parameters of a BRDF (Bi-directional ReflectanceDistribution Function) that represents the reflectivity of an object forimage rendering purposes. Depending on the BRDF representation used, theother parameters are fit to approximate the reflectivity at each surfaceelement point. The result is a reflectivity map image that contains thevariation of reflectivity parameters across the reconstructed objectsurface, just as the texture map images contains the surface coloration.

[0165] Three-dimensional calibration objects are needed to calibrate thereference-coordinate space locations of incident lighting used forreflectivity and other surface property calculations, because the anglebetween the light direction and the surface normal must be known. Oneform of 3D calibration object that could be used is a cone shape with acalibration checkerboard pattern on it. FIG. 19 shows a set of 3Dcalibration cones 91, with shadow lines 92 superimposed to illustratetriangulation of a light source 93. The shadow that each well-knowncalibration cone casts on the platform determines a line 92 from the tipof each shadow 94, through the tip of the corresponding cone 95, to thelight source 93. Triangulation, intersecting two or more cone-shadowlines 92 locates the light source 93 for this purpose.

[0166] Initially the surface geometry is represented as a point cloud.The 3D data is processed to produce a 3D surface description that iscomprised of 3D surface elements. Typically, the 3D surface descriptionis a triangulated mesh comprised of numerous triangles. The surfacenormal may be computed for each triangle. Numerous images are acquiredand stored along with the viewing angle used during acquisition. Thelocal image data corresponding to each 3D surface element/triangle maybe computed using the reference coordinates and corresponding cameraparameter data related to the acquisition of images and determination ofsurface geometry. The reference coordinates provided by the calibrationobjects and related camera geometry data are used to create a digitalmodel of the object that corresponds to any view of the object). Thelocal image data that corresponds to a given 3D surface element may beeasily matched using precise reference data and camera geometry datacommon to both captured data and synthesized 3D descriptions.

[0167] For each surface element, the surface normal is computed. Datarelated to the plurality of images acquired from a plurality of views ofeach 3D surface element is recorded in a viewing history. In addition tothe pairing of the surface element and the view number and image-spacepixel data, the viewing history can be generated which contains the 3Dcoordinate data including the surface normal vector for each surfaceelement. Multiple images and corresponding viewing geometry data percamera view are individually entered into the viewing history. Lightinggeometry (the position and orientation of a projected light sourcerelative to said surface normal vector) of one or more light sources mayalso be determined and integrated into the history.

[0168] Surface normals may also be determined by stereophotometry, whichis also known as “shape from shading”. This is most applicable tosurfaces with uniform coloration and diffuse (matte) reflectivityproperties, so that a Lambertian (cosine law) shading results fromdirected lighting. Multiple light sources are used one at a time tocapture images. Typically the camera is not moved between views tofacilitate image registration. The shading of each pixel indicates theangle which the surface normal inclines from the light direction. Hence,at least three images are required to uniquely determine the surfacenormals. Shape information can also be inferred by numericallyintegrating the surface normal field determined for the object, but thisis problematic due to accumulating numerical error from smallmisestimates of the surface normal direction.

[0169] The lighting geometry and viewing geometry may be correlated witheach other and observation of incident lighting can producecorresponding surface reflectance data. More samples with differentlighting and viewing geometries will provide a more accurate estimate ofthe surface reflectance properties. Knowledge of the intensity (e.g. inWatts per unit of surface area) of the incident light and observation ofthe change in image intensity between the incoming and outgoing lightmay be used to create a more accurate reflectance mapping of the 3Dsurface element

[0170] The viewing history may take the form of a table that includessome or all of the recorded data such that the data for each view may becross-correlated for processing purposes. Furthermore, the table (suchas set, list, matrix, array or other data structure) may be used tobatch process the data relating to the entire collection of datarelating to the plurality of views of a given surface element enteredinto the viewing history.

[0171] As previously mentioned, the surface of the object may be dividedinto numerous surface elements of viewing histories, which will serve toprovide a structure by which the aforementioned correlations may be madeto produce independent measurements of the surface reflectivity for eachsurface element. The process may be applied to all visible surfaceelements of a scanned object to produce a global reflectance mapping.

[0172] The viewing history of a given 3D surface element provides thebasis to automatically select color data to be aligned to the 3D surfaceelement. For instance, for each 3D point and each camera position, theangle may be calculated between the point's surface normal and a rayfrom that point to the camera's center of projection. So, if the angleis 0, the surface patch was facing the camera, and if it is pi/2 (90degrees) then the patch was edge-on to the camera. Different settings,that is, thresholds and ranges may be set to include or exclude data tobe aligned or otherwise associated with the respective 3D element aspart of a representational scheme. For instance, the view directlyfacing the camera (that is, 0 degrees) may be desirable because thatview would have the least distortion. A setting of 0 degrees or 0-5degrees may be used to automatically select the image data to beassociated with the respective 3D element. However, another viewingangle may be likely to exhibit specular reflection due to the locationof the projected light, which may be undesirable. The settings may alsoprovide a basis for selection within a weighted value system wherein theimage data selected at specific settings will be more or less prominentwith respect to image data selected at other settings based on theweighted values assigned to the corresponding settings. For instanceimages corresponding to settings of between 0-5 degrees may be given acertain weighted value because of how the frontalness of the surfaceaffects the color image, while the angles of 20-30 degrees may be givena different weighted value because of how the angle of incident lightingaffects the color image. In such cases the imagery data associated withthe higher weighted values will appear more prominent in the image datato be aligned or otherwise associated with the 3D surface element aspart of a representational scheme. Ultimately the 3D surface data isassigned to the respective 3D surface element.

[0173] An overlay image can be combined with the camera image to showthe accuracy of the camera calibration and shape reconstruction process.The overlay image contains a sample of surface points and normals,rendered graphically from the point-of-view of a particular cameraposition.

[0174] Furthermore, this continuation describes the integration ofviewing geometry data with data produced from the control andmanipulation of the direction, intensity, frequency and numerous theirproperties of incident lighting (including contrasting lighting). Theacquisition of surface coloration (hue, saturation and intensity) mayvary depending on lighting properties, lighting geometry and camerageometry. The knowledge of the angle of incident lighting (lightinggeometry) can be combined with the knowledge of the viewing geometry andused to determine the reflectivity and other surface properties of apatch. The viewing history may additionally include the angle, distance,intensities and spectral qualities describing incident lighting and thecorresponding reflected lighting.

[0175] The viewing history may also include the categorization ofilluminants (i.e. ambient lighting, diffuse lighting and specularlighting. If the multiple measurements of surface coloration and any ofthese properties are made at specific angular displacements relativecamera and observed surface patch then the measurements may be said tobe view dependent as the resultant acquired images change in appearancedepending on the relative angular displacement between views.Furthermore if multiple measurements are made accompanied by measured orobserved changes in lighting properties and/or geometry then themeasurements are said to be lighting dependent.

[0176] The virtual representation of the target object contains 3Dsurface shape data (position and normal of each surface element), aswell as associated surface property distributions including color mapimages and reflectivity (BRDF) function parameter images. When thevirtual object is displayed from any new, synthesized view direction,the result is an automatic view-dependent selection of the best datathat was integrated from the combination many camera views>of the realobject. A series of data capture events, in which camera and lightsource angles are situationally coupled, create a viewing history dataset, from which view dependant 3D object surface analysis can be readilyextracted. This viewing history data set can then be compiled, backannotated and otherwise processed to develop the shape and image of anobject(s) thusly captured, as a dynamic view dependent representation ofsaid object(s). Such a view dependent representation would interactivelydisplay the scanned objects image surface properties relative to virtuallighting and camera coordinates. A view dependent representation mayalso be created without regard to lighting geometry and other lightingdata. In such a case the image and geometry of such a view dependentrepresentation may only interact with virtual camera coordinates. If arepresentation is created where said representation includes lightingproperties and lighting geometry data then the representation may bedefined as lighting dependent. View dependent and lighting dependent canbe combined to form extremely vivid and dynamic representations. Theshear volume of data that is conveyed by view dependent and lightingdependent representations call for compression and expression in theform of a mathematical function. A frequency based functional expressionof the spectral and geometric content of said view and lightingdependent representations is most appropriate.

[0177] A surface patch may represent any size surface region. Thesurface patch relative to the camera may be as small or smaller than apixel. Thus a 3D surface element may be of sub-pixel resolution.

[0178] The extraction of hue, intensity and saturation values of a pixelas it is related over time to changes in lighting and camera view canproduce of raw data that can be expressed as a mathematical function oras a constant. The extraction of changes of hue, intensity andsaturation values of a pixel over time relates to changes in lightinggeometry and camera geometry.

[0179] A functional expression can express the combination angle ofincidence, intensity and color of light, as well as viewing angle.

[0180] The basis for the extraction of more information to beincorporated into the reflective coefficient of that pixel. Thereflective coefficient can be used to create a mapping that would createan independent functional expression of the color of that pixel as itrelates to position of view.

[0181] The reflective coefficients and color values as functionalexpressions can then be integrated with a format; such as voxel(volumetric pixel) that allows for a hierarchical representationalstructure that incorporates viewing angle and distance of lightingconditions. The color values of each pixel expressed as constants shallbe acquired when the relationship to sensor focal plane and surfacenormal is most frontal and the relationship between surface normal andlighting geometry the most consistent while also providing clearimagery.

[0182] While this invention has been described in terms of severalpreferred embodiments, there are alterations, permutations, andequivalents that fall within the scope of this invention. It should alsobe noted that there are many alternative ways of implementing both theprocess and apparatus of the present invention. It is therefore intendedthat the following appended claims be interpreted as including all suchalterations, permutations, and equivalents as fall within the truespirit and scope of the present invention.

1. A three-dimensional digital scanner comprising: a multiple viewdetector responsive to a broad spectrum of light, said detector beingoperative to develop a plurality of images of a three dimensional objectto be scanned, said plurality of images being taken from a plurality ofrelative positions and orientations with respect to said threedimensional object, said plurality of images depicting a plurality ofsurface portions of said three dimensional object to be scanned; adigital processor including a computational unit said digital processorbeing coupled to said detector; a calibration ring comprisingcalibration objects integrated with an object support for inclusion insaid plurality of images; said digital processor being operative to useimagery of said calibration objects to determine camera geometryrelative to a reference frame; said object support being an apparatusdesigned to provide rotational view images of said object placed on saidobject support and said rotational view images being defined as imagestaken by relative rotation between the object and the detector; at leastone source of white light for illuminating said three dimensional objectfor purposes of color image acquisition; at least one source of activelight being projected onto the object; said digital processor beingoperative to use active range finding techniques to derive 3D spatialdata describing the surface of said three dimensional object; saiddigital processor being operative to analyze said calibration objects toperform a coordinate transformation between reference coordinates andimage space coordinates said coordinate transformation being used tocorrelate color image data, viewing angle data and 3D spatial data; suchthat a digital representation of said object that includes both shapeand surface coloration may be developed from said data.
 2. The apparatusof claim 1 said digital processor being operative to partition said 3Dspatial data into a plurality of 3D surface elements.
 3. The apparatusof claim 1 further comprising at least one frontalness setting forselecting data for an archive of viewing angles and corresponding colorimage data to be processed for color mapping.
 4. The apparatus of claim1 wherever said digital processor is operative to perform a visibilitycomputation to create an archive of viewing angle data and nonoccludedcolor image data and 3D spatial data corresponding to said 3D surfaceelement.
 5. The apparatus of claim 2 said digital processor beingoperative to identify individual 3D surface elements.
 6. The apparatusof claim 5 said digital processor being operative to develop a viewinghistory that stores viewing angles, 3D spatial data and multiple colorimages of a surface patch corresponding to an identified 3D surfaceelement.
 7. The apparatus of claim 6 further comprising at least onefrontalness setting for selecting data for an archive of viewing anglesand corresponding color image data to be processed for color mapping. 8.The apparatus of claim 6 wherein said digital processor is operative toperform a visibility computation to create an archive of viewing angledata and nonoccluded color image data and 3D spatial data correspondingto said 3D surface element.
 9. A three-dimensional digital scannercomprising: a multiple view detector responsive to a broad spectrum oflight, said detector being operative to develop a plurality of images ofa three dimensional object to be scanned, said plurality of images beingtaken from a plurality of relative positions and orientations withrespect to said object, said plurality of images depicting a pluralityof surface portions of said object to be scanned; a digital processorincluding a computational unit said digital processor being coupled tosaid image detector; said digital processor being operative to measureand record for each of said plurality of images, position informationincluding the relative angular position of the detector with respect tothe object; said digital processor being operative to use said positioninformation to develop with said computational unit 3D coordinatepositions and related image information of said plurality of surfaceportions of said object; a calibration ring comprising calibrationobjects integrated with an object support for inclusion in saidplurality of images; said digital processor being operative to useimagery of said calibration object to determine camera geometry relativeto a reference frame; said object support being an apparatus designed toprovide rotational view images of said object placed on the objectsupport, and said rotational view images being defined as images takenby relative rotation between the object and the detector; said digitalprocessor being operative to use active range finding techniques toderive surface geometry data describing the surface of said object saiddigital processor being operative to partition said surface geometrydata into a plurality of 3D surface elements; said digital processorbeing operative to identify individual 3D surface elements; said digitalprocessor being operative to develop a viewing history that storesviewing angles and 3D spatial data related to multiple views of asurface patch corresponding to an identified 3D surface element; saiddigital process being operative to have at least one frontalness settingfor creating for selecting data for an archive of viewing angles andcorresponding color image data from said viewing history to be processedfor color mapping purposes related to a view dependent representation ofthe surface image corresponding to said 3D surface element; said digitalprocessor being operative to perform a visibility computation to createan archive of visible cameras related to the acquired surface imagerycorresponding to said 3D surface elements said archive of visiblecameras including reference to 3D spatial data describing said 3Dsurface elements; said digital processor being operative to crosscorrelate said archive of visible cameras and said archive of viewingangles and corresponding image data to produce data which isincorporated into a functional expression such that a view dependentrepresentation of said object that includes both shape and surfacecoloration may be developed.
 10. A method for scanning a threedimensional object using a multiple view detector responsive to a broadspectrum of light and a digital processor having a computation unit saiddigital processor being coupled to said multiple view detectorcomprising; developing a plurality of images of a three dimensionalobject to be scanned said plurality of images being taken from aplurality of relative angles with respect to said object, said pluralityof images depicting a plurality of surface portions of said object to bescanned; providing a calibration ring comprised of patterned 3Dcalibration objects to be included in said plurality of images;providing incident light to illuminate said calibration ring and saidobject during the taking of said images; determining from said images ofsaid calibration ring the viewing geometry and lighting geometryrelative to a 3D surface element corresponding to a surface patch of ascanned object said lighting geometry being determined by said incidentlighting casting a shadow of said 3D calibration objects. the pattern ofeach 3D calibration object providing feature or points at preciselyknown locations with respect to the 3D surface geometry of saidcalibration objects and including identifiable features to enhance theidentification of said feature points over a range of viewing angles;deriving data by analyzing the images of said calibration objects andperforming with said data a transformation between reference coordinateand image space coordinate; using said transformation, registering viewdependent imagery of said surface patch with said 3D surface element;using said calibration ring to develop a viewing history where saidviewing history includes the viewing geometry, angle of incident lightcorresponding and said view dependent imagery relative to said 3Dsurface element.
 11. A method for scanning a three dimensional objectusing a multiple view detector responsive to a broad spectrum of lightand a digital processor having a computation unit said digital processorbeing coupled to said multiple view detector comprising; developing aplurality of images of a three dimensional object to be scanned saidplurality of images being taken from a plurality of relative angles withrespect to said object, said plurality of images depicting a pluralityof surface portions of said object to be scanned; providing acalibration ring comprised of patterned 3D calibration objects to beincluded in said plurality of images; the pattern of said calibrationand/or of an adjacent object including identifiable features that willenhance the identification said feature points over a range of viewingangles; using a patterned 3D calibration object to determine the viewinggeometry and angle of incident light relative to a 3D surface elementcorresponding to a surface patch of a scanned object; using said 3Dcalibration object to determine lighting geometry by casting a shadow ofsaid incident light; providing from the pattern of said patterned 3Dcalibration object, features and points at precisely known locationswith respect to 3D surface geometry of said calibration object; usingdata derived by analyzing said calibration objects, performing atransformation between reference coordinates and image spacecoordinates; said transformation being used to register view dependentimagery of said surface patch with said 3D surface element; using saidcalibration ring to develop a viewing history where said historyincludes the viewing geometry, angle of incident light corresponding andsaid view dependent imagery relative to said 3D surface element.
 12. Amethod for scanning a three dimensional object using a multiple viewdetector responsive to a broad spectrum of light and a digital processorhaving a computation unit said digital processor being coupled to saidmultiple view detector comprising by use of said detector and saiddigital processor: developing a plurality of images of a threedimensional object to be scanned said plurality of images being takenfrom a plurality of relative angles with respect to said object, saidplurality of images depicting a plurality of surface portions of saidobject to be scanned; providing a calibration ring comprised ofpatterned 3D calibration objects to be included in said plurality ofimages; said digital processor being operative to use imagery of saidcalibration objects to determine camera geometry data including viewingdirection of said detector relative to a reference frame; acquiring saidobject imagery under a plurality of lighting scenarios; said lightingscenarios including at least white light used for acquiring color imagedata and active projection lighting used to provide imagery to beanalyzed by an active range finding procedures; using said digitalprocessor to develop 3D data and related color image data of saidplurality of surface portions of said object; using active range findingtechniques to derive 3D spatial data located in reference coordinatespace; processing said 3D spatial data into a 3D surface representationcomprised of identifiable 3D surface elements of said surface portions;performing a coordinate transformation to transform said 3D spatial dataand corresponding identifiable 3D surface elements from referencecoordinate space to image coordinate space; performing a visibilitycomputation that compares image space depth coordinates betweentransformed 3D surface elements, from a given viewing direction of saiddetector, to determine whether a 3D surface element is non-occluded withrespect to all other 3D surface element from said viewing direction;using the color image data corresponding to said non-occluded 3D colorsurface element to develop a 3D shape and color representation of saidobject.
 13. A method for scanning a three dimensional object using amultiple view detector responsive to a broad spectrum of light and adigital processor having a computation unit said digital processor beingcoupled to said multiple view detector comprising by use of saiddetector and said digital processor; developing a plurality of relativeimages of a three dimensional object to be scanned said plurality ofimages being taken from a plurality of positions and orientationsincluding viewing angles relative to said object, said plurality ofimages depicting a plurality of surface portions of said object to bescanned; providing a calibration ring comprised of calibration objectsto be included in said plurality of images; and wherein the geometriclocation of calibration features with respect to geometry of thecalibration objects is known or is determined; said digital processorbeing operative to use imagery of said calibration objects to determinecamera geometry data including angles of said detector relative to areference frame; acquiring said plurality of images of said object undera plurality of lighting scenarios said lighting scenarios including atleast white light used for acquiring color of said images and activeprojection lighting used to provide imagery to be analyzed by an activerange finding procedure; said images being located in image coordinatespace; determining camera geometry data corresponding to different saidpositions and orientations of said detector to capture the color imagedata; recording said color image data with corresponding camera geometrydata to a point on a colormap image; whereby a three dimensionalrepresentation of said object to be scanned can be developed by saiddigital processor.
 14. A method for scanning a three dimensional objectusing a multiple view detector responsive to a broad spectrum of lightand a digital processor having a computation unit said digital processorbeing coupled to said multiple view detector comprising by use of saiddetector and said digital processor; providing a calibration ringintegrated with an object support for inclusion in said plurality ofimages said calibration ring comprising calibration objects saidcalibration objects being of known geometry and having calibrationfeatures of known geometry and the geometric location of the calibrationfeatures with respect to the geometry of the calibration objects beingknown and the geometric configuration of the calibration objectsrelative to each other being known; using of non-calibration imagery toenhance the identification of said calibration features; said digitalprocessor being operative to use imagery of said calibration objects todetermine detector location and orientation relative to a reference;acquiring said plurality of images of said object under a plurality oflighting scenarios including using white light used for acquiring colorimage data and using active projection lighting to provide imagery to beanalyzed by an active range finding procedure to determine the surfacegeometry of object portions; said object support being of an apparatusdesigned to provide rotational view images of said object placed on saidobject support, and said rotational view images being defined as imagestaken by relative rotation between the object and the detector;developing a plurality of images of a three dimensional object to bescanned said plurality of images being taken from a plurality ofrelative angles with respect to said object, said plurality of imagesdepicting a plurality of surface portions of said object to be scanned;whereby a three dimensional image of said object to be scanned can bedeveloped by said digital processor that includes both shape and surfaceimage.
 15. A method for scanning a three dimensional object using amultiple view detector responsive to a broad spectrum of light and adigital processor having a computation unit said digital processor beingcoupled to said multiple view detector comprising; providing acalibration ring comprising calibration objects integrated with anobject support for inclusion in said plurality of images; said digitalprocessor being operative to use imagery of said calibration objects todetermine detector location and orientation relative to a referenceframe; acquiring said plurality of images said object under a pluralityof lighting scenarios including using white light used for acquiringcolor image data and using active projection lighting to provide imageryto be analyzed by an active range finding procedure to determine thesurface geometry of said object portions; said object support being ofan apparatus designed to provide rotational view images of said objectplaced on said object support, and said rotational view images beingdefined as images taken by relative rotation between the object and thedetector; developing a plurality of images of a three dimensional objectto be scanned said plurality of images being taken from a plurality ofrelative angles with respect to said object, said plurality of imagesdepicting a plurality of surface portions of said object to be scanned;whereby a three dimensional image of said object to be scanned can bedeveloped by said digital processor that includes both shape and surfaceimage.
 16. A method for scanning a three dimensional object using amultiple view detector responsive to a broad spectrum of light and adigital processor having a computation unit said digital processor beingcoupled to said multiple view detector comprising; providing acalibration ring comprising 3D calibration objects integrated with anobject support for inclusion in said plurality of images; said digitalprocessor being operative to use imagery of said 3D calibration objectsto determine detector location and orientation relative to a referenceframe; determining the angle of incident lighting by analyzing shadowscaste by 3D calibration objects relative to a reference frame; acquiringsaid plurality of images said object under a plurality of lightingscenarios including using white light used for acquiring color imagedata and using active projection lighting to provide imagery to beanalyzed by an active range finding procedure to determine the surfacegeometry of said object portions; said object support being of anapparatus designed to provide rotational view images of said objectplaced on said object support, and said rotational view images beingdefined as images taken by relative rotation between the object and thedetector; developing a plurality of images of a three dimensional objectto be scanned said plurality of images being taken from a plurality ofrelative angles with respect to said object, said plurality of imagesdepicting a plurality of surface portions of said object to be scanned;whereby a three dimensional image of said object to be scanned can bedeveloped by said digital processor that includes both shape and surfaceimage.
 17. A method for scanning a three dimensional object using amultiple view detector responsive to a broad spectrum of light and adigital processor having a computation unit said digital processor beingcoupled to said multiple view detector comprising; developing aplurality of images of a three dimensional object to be scanned saidplurality of images being taken from a plurality of relative angles withrespect to said object, said plurality of images depicting a pluralityof surface portions of said object to be scanned; said digital processorbeing operative to perform a coordinate transformation to transform 3Dspatial data and corresponding identifiable 3D surface elements fromreference coordinate space to image coordinate space. performing avisibility computation that compares image space depth coordinatesbetween transformed 3D surface elements from a given viewing angle ofsaid detector to determine whether a 3D surface element is non-occludedwith respect to all other 3D surface elements from said viewing angle;using color image data corresponding to said non-occluded 3D surfaceelements to develop a 3D shape and color representation of said object;recording pairings of said object's 3D surface elements with a viewingangle at which it is visible; whereby a three dimensional image of saidobject to be scanned can be developed by said digital processor thatincludes both shape and surface image.
 18. A method for scanning a threedimensional object using a multiple view detector responsive to a broadspectrum of light and a digital processor having a computation unit saiddigital processor being coupled to said multiple view detectorcomprising; developing a plurality of images of a three dimensionalobject to be scanned said plurality of images being taken from aplurality of relative angles with respect to said object, said pluralityof images depicting a plurality of surface portions of said object to bescanned; said digital processor being operative to perform a coordinatetransformation to transform 3D spatial data and correspondingidentifiable 3D surface elements from reference coordinate space toimage coordinate space; performing a visibility computation thatcompares image space depth coordinates between transformed 3D surfaceelements, from a given viewing angle of said detector, to determinewhether a 3D surface element is non-occluded with respect to all other3D surface elements from said viewing angle; using said visibilitycomputation to develop a representation of the surface image; whereby athree dimensional image of said object to be scanned can be developed bysaid digital processor that includes both shape and surface image.
 19. Amethod for scanning a three dimensional object using a multiple viewdetector responsive to a broad spectrum of light and a digital processorhaving a computation unit said digital processor being coupled to saidmultiple view detector comprising; developing a plurality of images of athree dimensional object to be scanned said plurality of images beingtaken from a plurality of relative angles with respect to said object,said plurality of images depicting a plurality of surface portions ofsaid object to be scanned; said digital processor being operative toperform a coordinate transformation to transform 3D spatial data andcorresponding identifiable 3D surface elements from reference coordinatespace to image coordinate space; performing a visibility computationthat compares image space depth coordinates between transformed 3Dsurface elements, from a given viewing angle of said detector, todetermine whether a 3D surface element is non-occluded with respect toall other 3D surface elements from said viewing angle; recordingpairings of said object's non-occluded 3d surface elements with an imageviewing angles at which they are visible; using said visibilitycomputation to develop a representation of the surface image; whereby athree dimensional image of said object to be scanned can be developed bysaid digital processor that includes both shape and surface image.
 20. Amethod for scanning a three dimensional object using a multiple viewdetector responsive to a broad spectrum of light and a digital processorhaving a computation unit said digital processor being coupled to saidmultiple view detector comprising; developing a plurality of images of athree dimensional object to be scanned said plurality of images beingtaken from a plurality of relative angles with respect to said object,said plurality of images depicting a plurality of surface portions ofsaid object to be scanned; said digital processor being operative toperform a coordinate transformation to transform 3D spatial data andcorresponding identifiable 3D surface elements from reference coordinatespace to image coordinate space; performing a visibility computationthat compares image space depth coordinates between transformed 3Dsurface elements, from a given viewing angle of said detector, todetermine whether a 3D surface element is non-occluded with respect toall other 3D surface elements from said viewing angle; recordingpairings of said object's non-occluded 3d surface elements with an imageviewing angles at which they are visible; using said visibilitycomputation to develop a representation of the surface image; whereby athree dimensional image of said object to be scanned can be developed bysaid digital processor that includes both shape and surface image.
 21. Amethod for scanning a three dimensional object using an image detectorand a digital processing system coupled to the image detectorcomprising; using white light to acquire a plurality of images of athree dimensional object; providing a calibration ring for inclusion insaid plurality of images said calibration ring comprising detectablecalibration feature points located at known locations relative to eachother; using reference data provided by said calibration feature pointsto determine camera geometry relative to a reference frame; using saidreference data to determine camera geometry data corresponding to eachimage of at least one set of multiple color images of an object; saidmultiple color images being located in image coordinate space; usingactive light projection and a corresponding active range findingprocedure to produce 3D data located in reference coordinate spacedescribing at least one surface portion of said object; processing said3D data to produce a 3D surface description that is comprised of 3Dsurface elements each corresponding to a surface patch and related colorimage data; recording data related to the plurality of images acquiredfrom a plurality of views of said 3D surface element into a viewinghistory; using said viewing history to provide a structure by whichindependent computations related to surface image may be performed foreach surface element of said plurality of 3D surface elements; saiddigital processor being operative to perform a coordinate transformationto transform said 3Dspatial data and corresponding identifiable 3Dsurface elements from reference coordinate space to image coordinatespace; performing a visibility computation to compare image space depthcoordinates between transformed 3d surface elements, from a givenviewing direction of said detector, to determine whether a 3D surfaceelement is non-occluded with respect to all other 3D surface elementfrom said viewing direction; said color image data corresponding to saidnon-occluded 3D surface element being used to develop a 3Dshape andcolor representation of said object; using reference data provided bysaid calibration feature points to align surface patch image data with3D surface element data such that a 3D shape and color representation ofsaid object can be developed.Claim
 22. The method of claim 17 furthercomprising recording pairings of said object's non-occluded 3d surfaceelements with an image viewing angles they are visible.
 23. The methodof claim 17 further comprising storing said pairings as a list,
 24. Themethod of claim 17 further comprising storing said pairings as an array.25. The method of claim 17 further comprising storing said pairing sas amatrix.
 26. The method of claim 17 further comprising using saidvisibility computation to reconstruct the surface coloration of saidobject.
 27. The method of claim 17 further comprising using saidvisibility computation to reconstruct at least one surface property ofsaid object.
 28. The method of claim 17 further comprising selectingvisible 3D surface elements using angle of the surface normal to theviewing angle in choosing the visibility pairs likely to have thebest-quality image data for a particular 3D surface element.
 29. Themethod of claim 17 further comprising creating a view dependentrepresentational format.
 29. The method of claim 17 further comprisinganalyzing immediate neighborhood of a Z-buffer 3D surface element todecide whether a point is close to being obscured, and so its visiblecolor would be contaminated by the surface coloration of another surfaceelement.
 30. The method of claim 21 includes using multiple viewdependent measurements of color images of each surface patch related toa corresponding 3D surface element to develop a view dependentrepresentation of said color images corresponding to said surface patchand said 3D surface element.
 31. The method of claim 21 includes usingmultiple view dependent measurements of surface properties for eachsurface patch related to a corresponding 3d surface element to develop aview dependent representation of said surface properties correspondingto said patch said surface patch and said 3d surface element.
 32. Themethod of claim 21 includes determining lighting geometry relative to a3D surface element corresponding to a surface patch of a scanned object.33. The method of claim 21 includes using a coordinate transformation toregister view dependent imagery of said surface patch with said 3Dsurface element.
 34. The method of claim 21 including camera geometrydata in said viewing history.
 35. The method of claim 21 using a tableto store the viewing history data.
 36. The method of claim 21cross-correlating said data for processing purposes.
 37. The method ofclaim 21 integrating color and reflectance data to derive arepresentation of surface image of a surface patch corresponding to a 3dsurface element.
 38. The method of claim 21 using said viewing historyto store lighting geometry data.
 39. The method of claim 21 using saidviewing history to store data describing the angle of incident lighting.40. The method of claim 21 using said viewing history to store datadescribing viewing geometry.
 41. The method of claim 21 using saidviewing history to store data describing surface reflectance estimates.42. The method of claim 21 using said viewing history to store datadescribing lighting intensity.
 43. The method of claim 21 using saidviewing history to store data describing the brightness of ingoinglight.
 44. The method of claim 21 using said viewing history to storedata describing the brightness of outgoing light.
 45. The method ofclaim 21 using said viewing history to store data describing change inhue.
 46. The method of claim 21 using said viewing history to store datadescribing change in chrominance.
 47. The method of claim 21 where saidviewing history stores change in saturation.
 48. The method of claim 21further comprising using said viewing history to store data describingchange in intensity.
 49. The method of claim 21 further comprising usingsaid viewing history to store data describing change in brightness. 50.The method of claim 21 further comprising using said viewing history tostore data describing the change in hue relative to lighting and viewinggeometries.
 51. The method of claim 21 further comprising using saidviewing history to store data describing the change in chrominancerelative to lighting and viewing geometries.
 52. The method of claim 21further comprising using said viewing history to store data describingthe change in saturation relative to lighting and viewing geometries.53. The method of claim 21 further comprising using said viewing historyto store data describing the change in intensity relative to lightingand viewing geometries.
 54. The method of claim 21 further comprisingusing said viewing history to store data describing the change inbrightness relative to lighting and viewing geometries.
 55. The methodof claim 21 further comprising using said viewing history to store datadescribing the change in hue relative to lighting geometry.
 56. Themethod of claim 21 further comprising using said viewing history tostore data describing the change in chrominance relative to lightinggeometry.
 57. The method of claim 21 further comprising using saidviewing history to store data describing the change in saturationrelative to lighting geometry.
 58. The method of claim 21 furthercomprising using said viewing history to store data describing thechange in intensity relative to lighting geometry.
 59. The method ofclaim 21 further comprising using said viewing history to store datadescribing the change in brightens.
 60. The method of claim furthercomprising using said viewing history to store data describing thechange in hue relative to viewing geometry.
 61. The method of claimfurther comprising using said viewing history to store data describingthe change in chrominance relative to viewing geometry.
 62. The methodof claim 21 further comprising using said viewing history to store datadescribing the change in saturation relative to viewing geometry. 63.The method of claim 21 further comprising using said viewing history tostore data describing the change in intensity relative to viewinggeometry.
 64. The method of claim 21 further comprising using saidviewing history to store data describing the change in brightnessrelative to viewing geometry.
 65. The method of claim 21 furthercomprising correlating the viewing geometry with the lighting geometryto produce a surface reflectance estimate.
 66. The method of claim 21further comprising calculating the surface reflectance estimate using aknown value representing the lighting intensity.
 67. The method of claim21 further comprising acquiring multiple views of a surface patchcorresponding to a 3D surface element under multiple lightingconditions.
 68. The method of claim 21 further comprising correlatingthe angle of incident lighting with the surface normal corresponding toa said 3D surface element to produce the lighting geometry.
 69. Themethod of claim 21 further comprising correlating the camera geometrywith the surface normal corresponding to a 3D surface element to producethe viewing geometry.
 70. The method of claim 21 further comprisingestimating the surface normal of a surface patch corresponding to a 3Dsurface element.
 71. The method of claim 21 further comprising producinga view dependent three-dimensional representation of said object thatincludes both shape and surface coloration information.
 72. The methodof claim 21 further comprising producing a view dependentthree-dimensional representation of said object that includes both shapeand surface coloration and surface property information.
 73. The methodof claim 21 producing a lighting dependent three-dimensionalrepresentation of said object that includes both shape and surfacecoloration information.
 74. The method of claim 21 further comprisingproducing a lighting dependent three dimensional representation of saidobject that includes both shape and surface coloration and surfaceproperty information.
 75. The method of claim 21 further comprisingproducing a lighting dependent and viewing dependent three-dimensionalrepresentation of said object that includes both shape and surfacecoloration information.
 76. The method of claim 21 further comprisingproducing lighting dependent and viewing dependent three dimensionalrepresentation of said object that includes both shape and surfacecoloration and surface property information.
 77. The method of claim 21further comprising producing a mathematical functional expressionrepresenting a view dependent representation of said object.
 78. Themethod of claim 21 further comprising producing a mathematicalfunctional expression representing a lighting dependent representationof said object.
 79. The method of claim 21 further comprising producinga mathematical functional expression representing lighting dependent andview dependent representation of said object.
 80. The method of claim 21further comprising producing a frequency based mathematical functionalexpression representing said object.
 81. The method of claim 21 furthercomprising producing a frequency based mathematical functionalexpression representing said view dependent representation of saidobject.
 82. The method of claim 21 further comprising producing afrequency based mathematical functional expression representing saidlighting dependent representation of said object.
 83. The method ofclaim 21 further comprising producing a frequency based mathematicalfunctional expression representing said view dependent and lightingdependent representation of said object.
 84. A method for scanning athree dimensional object using an image detector and a digitalprocessing system coupled to the image detector comprising; using whitelight to acquire a plurality of images of a three dimensional object;providing a calibration ring for inclusion in said plurality of imagessaid calibration ring comprising detectable calibration feature pointslocated at known locations relative to each other; using reference dataprovided by said calibration feature points to determine camera geometryrelative to a reference frame; using said reference data to determinecamera geometry data corresponding to each image of at least one set ofmultiple color images of an object; using active light projection and acorresponding active range finding procedure to produce 3D datadescribing at least one surface portion of said object; processing said3D data to produce a 3D surface description that is comprised of 3Dsurface elements each corresponding to a surface patch; using referencedata provided by said calibration feature points to align surface patchimage data with 3D surface element data such that a 3D representation ofsaid object may be developed to include shape and image.
 85. A methodfor scanning a three dimensional object using an image detector and adigital processing system coupled to the image detector comprising;using white light to acquire a plurality of images of a threedimensional object; providing a calibration ring for inclusion in saidplurality of images said calibration ring comprising detectablecalibration feature points located at known locations relative to eachother; using reference data provided by said calibration feature pointsto determine camera geometry relative to a reference frame; using saidreference data to determine camera geometry data corresponding to eachimage of at least one set of multiple color images of an object; usingactive light projection and a corresponding active range findingprocedure to produce 3D data describing at least one surface portion ofsaid object; processing said 3D data to produce a 3D surface descriptionthat is comprised of 3D surface elements each corresponding to a surfacepatch and related color image data; using said reference data and camerageoemtry data to synthesize 3D data that corresponds to said given viewand corresponding image data describing said object; aligning surfacepatch image data that corresponds to a given 3D surface element usingsaid reference data and camera geometry data common to both captureddata and synthesized 3D data such that a 3D representation of saidobject may be developed to include shape and image.
 86. A method forscanning a three dimensional object using an image detector and adigital processing system coupled to the image detector comprising;using white light to acquire a plurality of images of a threedimensional object; providing a calibration ring for inclusion in saidplurality of images said calibration ring comprising detectablecalibration feature points located at known locations relative to eachother; using reference data provided by said calibration feature pointsto determine camera geometry relative to a reference frame; using saidreference data to determine camera geometry data corresponding to eachimage of at least one set of multiple color images of an object; usingactive light projection and a corresponding active range findingprocedure to produce 3D data describing at least one surface portion ofsaid object; processing said 3D data to produce a 3D surface descriptionthat is comprised of 3D surface elements each corresponding to a surfacepatch and related color image data; using said reference data and saidcamera geometry data to synthesize 3D data that corresponds to said setof multiple views and corresponding color image data describing saidobject; aligning viewing angle data and local color image datacorresponding to said set of multiple views of a surface patch to agiven 3D surface element using said reference data and camera geometrydata common to both captured data and synthesized 3D data; such that aview dependent 3D data may be mapped to said given surface elementwhereby a view dependent 3D representation of said object may bedeveloped to include shape and image
 87. A method for scanning a threedimensional object using an image detector and a digital processingsystem coupled to the image detector comprising; using white light toacquire a plurality of images of a three dimensional object; providing acalibration ring for inclusion in said plurality of images saidcalibration ring comprising detectable calibration feature pointslocated at known locations relative to each other; using reference dataprovided by said calibration feature points to determine camera geometryrelative to a reference frame; using said reference data to determinecamera geometry data corresponding to each image of at least one set ofmultiple color images of an object; using active light projection and acorresponding active range finding procedure to produce 3D datadescribing at least one surface portion of said object; processing said3D data to produce a 3D surface description that is comprised of 3Dsurface elements each corresponding to a surface patch related colorimage data; using said reference data and said camera geometry data tosynthesize 3D data that corresponds to said set of multiple views andrelated color image data describing said object; correlating viewingangle data and local color image data corresponding to said set ofmultiple views of a surface patch with a given 3D surface element usingsaid reference data and camera geometry data common to both captureddata and synthesized 3D data such that view dependent data correlatedwith said given surface element may be used to create a view dependentrepresentation that correlates to said given 3D surface element suchthat a view dependent representation of said object may be developed toinclude shape and image.
 88. The method of claim 84 further comprisingrecording data related to the plurality of images acquired from aplurality of views of said 3D surface element in a viewing history 89.The method of claim 86 further comprising using said viewing historyprovides a structure by which independent computations related to asurface element may be performed for each surface element of saidplurality of 3D surface elements
 90. The method of claim 84 furthercomprising using at least one frontalness setting to select data fromviewing history for processing
 91. The method of claim 84 furthercomprising using said reference data and said camera geometry data tosynthesize 3D data that corresponds to said set of multiple views andrelated color image data describing said object
 92. The method of claim84 further comprising performing a coordinate transformation totransform said 3d data from reference coordinate space to imagecoordinate space
 93. The method of claim 84 further comprisingperforming a visibility computation to compare image space depthcoordinates between transformed 3D surface elements, from a givenviewing direction of said detector, to determine whether a 3D surfaceelement is non-occluded with respect to all other 3D surface elementfrom said viewing direction
 94. The method of claim 84 furthercomprising using color image data corresponding to said non-occluded 3Dsurface element to develop a 3D shape and color representation of saidobject
 95. The method of claim 84 further comprising correlating viewingangle data and local color image data corresponding to said set ofmultiple views of a surface patch with a given 3D surface element usingsaid reference data and camera geometry data common to both captureddata and synthesized 3D data such that view dependent data correlatedwith said given surface element may be used to create a view dependentrepresentation that correlates to said given 3D surface element.
 96. Themethod of claim 84 further comprising aligning viewing angle data andlocal color image data corresponding to said set of multiple views of asurface patch with a given 3D surface element using said reference dataand camera geometry data common to both captured data and synthesized 3Ddata such that view dependent data aligned with said given surfaceelement may be used to create a view dependent representation thatcorrelates to said given 3D surface element
 97. A method for scanning athree dimensional object using an image detector and a digitalprocessing system coupled to the image detector comprising; using whitelight to acquire a plurality of images of a three dimensional object;providing a calibration ring for inclusion in said plurality of imagessaid calibration ring comprising detectable calibration feature pointslocated at known locations relative to each other; using reference dataprovided by said calibration feature points to determine camera geometryrelative to a reference frame; using said reference data to determinecamera geometry data corresponding to each image of at least one set ofmultiple color images of an object; said multiple color images beinglocated in image coordinate space; using active light projection and acorresponding active range finding procedure to produce 3D data locatedin reference coordinate space describing at least one surface portion ofsaid object; processing said 3D data to produce a 3D surface descriptionthat is comprised of 3D surface elements each corresponding to a surfacepatch and related color image data; determining the surface normal ofsaid 3D surface element recording data related to the plurality ofimages acquired from a plurality of views of said 3D surface element ina viewing history; using said viewing history provides a structure bywhich independent computations related to surface image may be performedfor each surface element of said plurality of 3D surface elements; usingat least one frontalness setting to select data for processing usingsaid reference data and said camera geometry data to synthesize 3D datathat corresponds to said set of multiple views and related color imagedata describing said object; performing a coordinate transformation totransform said 3D data from reference coordinate space to imagecoordinate space; Performing a visibility computation to compare imagespace depth coordinates between transformed 3D surface elements, from agiven viewing direction of said detector, to determine whether a 3Dsurface element is non-occluded with respect to all other 3D surfaceelement from said viewing direction; using color image datacorresponding to said non-occluded 3D surface element to develop a 3Dshape and color representation of said object; correlating viewing angledata and local color image data corresponding to said set of multipleviews of a surface patch with a given 3D surface element using saidreference data and camera geometry data common to both captured data andsynthesized 3D data such that view dependent data correlated with saidgiven surface element may be used to create a view dependentrepresentation that correlates to said given 3D surface element
 98. Amethod for scanning a three dimensional object using an image detectorand a digital processing system coupled to the image detectorcomprising; using white light to acquire a plurality of images of athree dimensional object; providing detectable calibration featurepoints using reference data provided by said calibration feature pointsto determine camera geometry relative to a reference frame; using saidreference data to determine camera geometry data corresponding to eachimage of at least one set of multiple color images of an object; saidmultiple color images being located in image coordinate space; usingactive light projection and a corresponding active range findingprocedure to produce 3D data located in reference coordinate spacedescribing at least one surface portion of said object; processing said3D data to produce a 3D surface description that is comprised of 3Dsurface elements each corresponding to a surface patch and related colorimage data; performing a coordinate transformation to transform said 3Ddata from reference coordinate space to image coordinate space;performing a visibility computation to compare image space depthcoordinates between transformed 3D surface elements, from a givenviewing direction of said detector, to determine whether a 3D surfaceelement is non-occluded with respect to all other 3D surface elementfrom said viewing direction; the color image data corresponding to saidnon-occluded 3D surface element is used to develop a 3D shape and colorrepresentation of said object; using reference data provided by saidcalibration feature points to align surface patch image data with 3Dsurface element data such that a 3D shape and color representation ofsaid object can be developed.
 99. The method for scanning a threedimensional object using an image detector and a digital processingsystem coupled to the image detector comprising; using white light toacquire a plurality of images of a three dimensional object; analyzingdetectable calibration feature points; using reference data provided bysaid calibration feature points to determine camera geometry relative toa reference frame; using said reference data to determine camerageometry data corresponding to each image of at least one set ofmultiple color images of an object; said multiple color images locatedin image coordinate space; using active light projection and acorresponding active range finding procedure to produce 3D data locatedin reference coordinate space describing at least one surface portion ofsaid object; processing said 3D data to produce a 3D surface descriptionthat is comprised of 3D surface elements each corresponding to a surfacepatch and related color image data; performing a coordinatetransformation to transform said 3D data from reference coordinate spaceto image coordinate space; performing a visibility computation tocompare image space depth coordinates between transformed 3D surfaceelements, from a given viewing direction of said detector, to determinewhether a 3D surface element is non-occluded with respect to all other3D surface element from said viewing direction; the color image datacorresponding to said non-occluded 3D surface element is used to developa 3D shape and color representation of said object; using reference dataprovided by said calibration feature points to align surface patch imagedata with 3D surface element data such that a 3D shape and colorrepresentation of said object can be developed.
 100. A method forscanning a three dimensional object using an image detector and adigital processing system coupled to the image detector comprising;using white light to acquire a plurality of images of a threedimensional object; providing a calibration ring for inclusion in saidplurality of images said calibration ring comprising detectablecalibration feature points located at known locations relative to eachother; using reference data provided by said calibration feature pointsto determine camera geometry relative to a reference frame; using saidreference data to determine camera geometry data corresponding to eachimage of at least one set of multiple color images of an object; saidmultiple color images located in image coordinate space using activelight projection and a corresponding active range finding procedure toproduce 3D data located in reference coordinate space describing atleast one surface portion of said object; processing said 3D data toproduce a 3D surface description that is comprised of 3D surfaceelements each corresponding to a surface patch and related color imagedata; performing a coordinate transformation to transform said 3D datafrom reference coordinate space to image coordinate space performing avisibility computation to compare image space depth coordinates betweentransformed 3D surface elements, from a given viewing direction of saiddetector, to determine whether a 3D surface element is non-occluded withrespect to all other 3D surface element from said viewing direction; thecolor image data corresponding to said non-occluded 3d surface elementis used to develop a 3D shape and color representation of said object;using reference data provided by said calibration feature points toalign surface patch image data with 3D surface element data such that a3D shape and color representation of said object can be developed usinga viewing history frontalness setting and visibility computation.
 101. Amethod for scanning a three dimensional object using an image detectorand a digital processing system coupled to the image detectorcomprising; using white light to acquire a plurality of images of athree dimensional object; providing a calibration ring for inclusion insaid plurality of images said calibration ring comprising detectablecalibration feature points located at known locations relative to eachother; using reference data provided by said calibration feature pointsto determine camera geometry relative to a reference frame; using saidreference data to determine camera geometry data corresponding to eachimage of at least one set of multiple color images of an object; saidmultiple color images located in image coordinate space; using activelight projection and a corresponding active range finding procedure toproduce 3D data located in reference coordinate space describing atleast one surface portion of said object; processing said 3D data toproduce a 3D surface description that is comprised of 3D surfaceelements each corresponding to a surface patch and related color imagedata; computing the 3D surface normal of a plurality of 3D surfaceelements; recording data related to the plurality of images acquiredfrom a plurality of views of said 3D surface element in a viewinghistory. using said viewing history provides a structure by whichindependent computations related to surface image may be performed foreach surface element of said plurality of 3D surface elements;performing a coordinate transformation to transform said 3D data fromreference coordinate space to image coordinate space; performing avisibility computation to compare image space depth coordinates betweentransformed 3D surface elements, from a given viewing direction of saiddetector, to determine whether a 3D surface element is non-occluded withrespect to all other 3D surface element from said viewing direction; thecolor image data corresponding to said non-occluded 3D surface elementis used to develop a 3D shape and color representation of said objectusing reference data provided by said calibration feature points toalign surface patch image data with 3D surface element data such that a3D shape and color representation of said object can be developed. 102.A method for scanning a three dimensional object using an image detectorand a digital processing system coupled to the image detectorcomprising; using white light to acquire a plurality of images of athree dimensional object; providing a calibration ring for inclusion insaid plurality of images said calibration ring comprising 3D calibrationobjects located at known locations relative to each other each 3Dcalibration object comprising detectable calibration feature points atknown locations with respect to the geometry of each 3D calibrationobject providing incident lighting to illuminate said 3D calibrationobject; using said 3D calibration object to determine the direction ofincident lighting by casting a shadow by obstructing said incidentlight; using reference data provided by said calibration feature pointsto determine camera geometry relative to a reference frame; using saidreference data to determine camera geometry data corresponding to eachimage of at least one set of multiple color images of an object; saidmultiple color images being located in image coordinate space; usingactive light projection and a corresponding active range findingprocedure to produce 3D data located in reference coordinate spacedescribing at least one surface portion of said object; processing said3D data to produce a 3D surface description that is comprised of 3Dsurface elements each corresponding to a surface patch and related colorimage data; using reference data provided by said calibration featurepoints to align surface patch image data with 3D surface element datasuch that a 3D shape and color representation of said object can bedeveloped.
 103. A method for scanning a three dimensional object usingan image detector and a digital processing system coupled to the imagedetector comprising; using white light to acquire a plurality of imagesof a three dimensional object; providing a calibration ring forinclusion in said plurality of images said calibration ring comprisingdetectable calibration feature points located at known locationsrelative to each other; said calibration ring being integrated with anobject support; said object support being of an apparatus designed toprovide rotational view images of said object placed on said objectsupport, and said rotational view images being defined as images takenby relative rotation between the object and the detector; usingreference data provided by said calibration feature points to determinecamera geometry relative to a reference frame; using said reference datato determine camera geometry data corresponding to each image of atleast one set of multiple color images of an object; said multiple colorimages being located in image coordinate space; using active lightprojection and a corresponding active range finding procedure to produce3D data located in reference coordinate space describing at least onesurface portion of said object; processing said 3D data to produce a 3Dsurface description that is comprised of 3D surface elements eachcorresponding to a surface patch and related color image data; usingreference data provided by said calibration feature points to alignsurface patch image data with 3D surface element data such that a3Dshape and color representation of said object can be developed.
 104. Amethod for scanning a three dimensional object using an image detectorand a digital processing system coupled to the image detectorcomprising; using white light to acquire a plurality of images of athree dimensional object; providing a calibration ring for inclusion insaid plurality of images said calibration ring comprising detectablecalibration feature points located at known locations relative to eachother; using reference data provided by said calibration feature pointsto determine camera geometry relative to a reference frame; using saidreference data to determine camera geometry data corresponding to eachimage of at least one set of multiple color images of an object; saidmultiple color images being located in image coordinate space; usingactive light projection and a corresponding active range findingprocedure to produce 3D data located in reference coordinate spacedescribing at least one surface portion of said object; processing said3D data to produce a 3D surface description that is comprised of 3Dsurface elements each corresponding to a surface patch and related colorimage data; using reference data provided by said calibration featurepoints to align surface patch image data with 3D surface element datasuch that a 3D shape and color representation of said object can bedeveloped.
 105. A method for scanning a three dimensional object usingan image detector and a digital processing system coupled to the imagedetector comprising; using white light to acquire a plurality of imagesof a three dimensional object; providing a calibration ring forinclusion in said plurality of images said calibration ring comprisingdetectable calibration feature points located at known locationsrelative to each other; said calibration ring being integrated with anobject support; said object support being of an apparatus designed toprovide rotational view images of said object placed on said objectsupport, and said rotational view images being defined as images takenby relative rotation between the object and the detector using referencedata provided by said calibration feature points to determine camerageometry relative to a reference frame; using said reference data todetermine camera geometry data corresponding to each image of at leastone set of multiple color images of an object; using active lightprojection and a corresponding active range finding procedure to produce3D data describing at least one surface portion of said object;processing said 3D data to produce a 3D surface description that iscomprised of 3D surface elements each corresponding to a surface patch;using reference data provided by said calibration feature points toalign surface patch image data with 3D surface element data such that a3D representation of said object may be developed to include shape andimage.
 106. A method for scanning a three dimensional object using animage detector and a digital processing system coupled to the imagedetector comprising; using white light to acquire a plurality of imagesof a three dimensional object; providing a calibration ring forinclusion in said plurality of images said calibration ring comprisingdetectable calibration feature points located at known locationsrelative to each other; using reference data provided by saidcalibration feature points to determine camera geometry relative to areference frame; using said reference data to determine camera geometrydata corresponding to each image of at least one set of multiple colorimages of an object; said multiple color images located in imagecoordinate space; using active light projection and a correspondingactive range finding procedure to produce 3D data located in referencecoordinate space describing at least one surface portion of said object;processing said 3D data to produce a 3D surface description that iscomprised of 3D surface elements each corresponding to a surface patchand related color image data; recording data related to the plurality ofimages acquired from a plurality of views of said 3D surface element ina viewing history; using said viewing history to provide a structure bywhich independent computations related to surface image may be performedfor each surface element of said plurality of 3D surface elements; usingreference data provided by said calibration feature points to alignsurface patch image data with 3D surface element data such that a 3Dshape and color representation of said object can be developed